django生成登录随机图片验证码:http://www.cnblogs.com/wupeiqi/articles/4786251.html

def insert(request):
# print("email",request.POST.get("email"))
if request.method=="POST":
print(time.strftime("%Y-%m-%d %H:%M:%S"))
# login_tmp.objects.update(lastTime=datetime.datetime.now()+datetime.timedelta(hours=2))
# login_tmp.objects.update(firstTime=datetime.datetime.now())
rel=BaseResult()
obj = MyformsEmail(request.POST)
if obj.is_valid():
print(time.strftime("%Y-%m-%d %H:%M:%S"),"forms is ok")
isOkData=obj.clean()
email =isOkData["emailss"] # 生成6位的0-9的随机数字,并转换成字符串 生成验证码
random_str = "".join([str(random.randint(0, 9)) for i in range(6)])
yanzheng=login_tmp.objects.filter(email=email,tmpType='')
if yanzheng.count():
timenow=datetime.datetime.now()
print(timenow, "yanzheng is ok")
# login_tmp.object(es.filter(lastTime__gt=F("firstTime")+0.5).update(times=0)
# 获取一个当前时间减去一小时的时间,用于判断提交请求的时间间隔是否合法
thisTime = datetime.datetime.now() + datetime.timedelta(hours=-1)
print("thistime:",thisTime, "datatime",datetime.datetime.now())
if yanzheng.filter(firstTime__lt=thisTime).count():
print("okokokokokokokokok")
try:
# objEmail=sendemail.Send_email()
# objEmail.send_mail(email,random_str)
yanzheng.update(tmp_num=random_str, firstTime=timenow, lastTime=timenow, times='')
rel.supmary="验证码发送成功"
rel.code=''
except Exception as e:
rel.data = "验证码发送失败"
return HttpResponse(json.dumps(rel.__dict__)) if yanzheng.filter(firstTime__gt=thisTime,times__gt=5).count():
rel.error = "1小时内只可以请求5次验证码"
rel.status=False
print(rel.error)
return HttpResponse(json.dumps(rel.__dict__)) else:
print(time.strftime("%Y-%m-%d %H:%M:%S"), "yanzheng.filter is ok")
try:
print(email)
print(random_str)
# objEmail=sendemail.Send_email()
# objEmail.send_mail(email,random_str)
yanzheng.update(times=F("times") + 1, tmp_num=random_str,lastTime=datetime.datetime.now())
rel.data='验证码发送成功'
print(rel.data)
except Exception as e:
rel.data = e
else:
try: login_tmp.objects.create(email=email,tmp_num=random_str,times=1,tmpType=1)
except Exception as e:
rel.data="验证码发送失败"
return HttpResponse(json.dumps(rel.__dict__))
else:
# rel_myform=obj.errors.as_json()
# rel_myform=obj.errors.as_json()
rel_myform=obj.errors['emailss'][0] print(rel_myform)
rel.status=False
# rel.error=rel_myform['emailss'][0]['message']
rel.error=rel_myform print("rel_myform:",rel_myform)
print(rel) return HttpResponse(json.dumps(rel.__dict__))

HTML

            <div class="login-input" style="position: relative; ">
<span class="insert_err hide" id="insert_err" style="font-size: 10px;color: red">报错--</span><br>
<select style="width: 205px;height: 30px;border: 1px solid #CDDDEF;padding: 5px 5px;">
<option>中国(+86)</option>
<option>中国香港(+852)</option>
<option>中国澳门(+853)</option>
<option>中国台湾(+886)</option>
</select><br><br> <input style="width: 115px;height: 20px" type="email" name="emaisl" id="emails" placeholder="邮箱">
<button id="emailBt">获取验证码</button><br><br>
{# <--#}
{# <input style="width: 115px;height: 20px" type="text" name="phonenumber" placeholder="手机号">#}
{# <button id="phoneBt">获取验证码</button>#}
{# <br>#}
{# <span style="font-size: 10px;margin-left: 40px">收不到短信?&nbsp;&nbsp;&nbsp;&nbsp; <a href="javascript:;">获取语音验证码</a></span>-->#}
{# <br><br>#}
<input style="width: 200px;height: 20px" type="text" name="code" placeholder="验证码" id="tmpNum"><br><br>
<input style="width: 200px;height: 20px" type="password" name="password" placeholder="密码" id="passwd"><br><br> <button class="loginNext" id="loginNext"> 下一步</button> </div>

JavaScript OR  jQuery

    function insert() {
$("#emailBt").click(function () {
//alert($("#email").val());
//console.log($("#emails").val()); $.ajax({
url:"/insert/",
data:{emailss:$("#emails").val()},
//dataType:JSON,
type:"POST",
success:function (rel) { console.log(rel);
var rel_data=JSON.parse(rel);
if (rel_data.status){
console.log(rel.error);
console.log(rel_data.error);
$("#emails").attr("disabled","disabled");
$("#insert_err").html('验证码发送成功');
alert("验证码发送成功"); }else{
//var err=JSON.parse(rel_data.error);
var err_msg=rel_data.error;
console.log(err_msg);
$("#insert_err").attr("color","red").removeClass("hide").html(err_msg); } } }) });

django-forms表单验证的更多相关文章

  1. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  2. django form表单验证

    一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...

  3. django from表单验证

    django from表单验证   实现:表单验证 工程示例: urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from djan ...

  4. Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)

    一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...

  5. Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)

    通常验证用户输入是否合法的话,是前端js和后端共同验证的,这是因为前端js是可以被禁用的,假如被禁用了,那就没法用js实现验证合法与否了,也就是即使用户输入的不合法,但是也没提示,用户也不知道怎么输入 ...

  6. django book表单验证学习

    django提供了强大的表单验证功能form 个人认为是把html代码封装到form里面,就像封装models中的数据一样.而且带有强大的验证功能,不需要后台再去写一堆乱七八糟的验证 具体操作查看dj ...

  7. Django之表单验证

    对于前端的表单进行验证的方法,从最简单的js到基于XML传输的Ajax,再到cookie的免认证,现在Django为我们提供了自带的表单验证方法. views.py: from django impo ...

  8. Django forms表单 select下拉框的传值

    今儿继续做项目,学习了Django的forms生成前端的代码. forms.py class SignupForm(forms.Form): username = forms.CharField(va ...

  9. Django-website 程序案例系列-17 forms表单验证的字段解释

    1.Django内置字段如下: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial ...

  10. Django ModelForm表单验证

    ModelForm 在使用Model和Form时,都需要对字段进行定义并指定类型,通过ModelForm则可以省去From中字段的定义 应用场景:定制model admin 的时候可以使用.适用于小业 ...

随机推荐

  1. Linux 下安装PHPunit

    PHP 档案包 (PHAR)  要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文 ...

  2. Word 操作

    1.出文件,最后一页是附件.最后一页的页码不想要.如何删除?用的是 office word 2010版本,跟07 03版本界面不一样. 在最后一页的最前面插入分节符:下一页 ,编辑页脚.让页脚“取消链 ...

  3. Crashing Robots - poj 2632

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8352   Accepted: 3613 Description In ...

  4. 检测session用户信息跳转首页界面

    方案一:采用jsp方式检测用户信息跳转 <%@ page language="java" pageEncoding="UTF-8"%> <%@ ...

  5. Java多线程编程总结一:多线程基本概念

    Java多线程编程总结一 – 初识多线程 进程.多进程.线程.多线程的概念 进程(process):CPU的执行路径.通俗的说就是系统中正在运行的程序.比如我们打开了浏览器.QQ等等,这些程序一旦被打 ...

  6. HDU 5273 区间DP

    输入一组数,m次询问 问每一个询问区间的逆序数有多少 区间DP简单题 #include "stdio.h" #include "string.h" int dp ...

  7. Coursera machine learning 第二周 quiz 答案 Linear Regression with Multiple Variables

    https://www.coursera.org/learn/machine-learning/exam/7pytE/linear-regression-with-multiple-variables ...

  8. web安全之SQL注入---第五章 如何预防SQL注入 ?

    5-1严格检查输入变量的类型和格式总结:其实就是做一些判断正则表达式:验证密码:/^[a-zA-Z]{6,}$/5-1严格检查输入变量的类型和格式总结:其实就是做一些判断正则表达式:验证密码:/^[a ...

  9. Spring中的国际化资源以及视图跳转

    一.SpringMVC对国际化的支持 SpringMVC进行资源国际化主要是通过ResourceBundleMessageSource实现的,xml如下配置: <bean id="me ...

  10. nginx搭建服务

    1.当然首先是安装nginx :http://nginx.org/en/download.html 2.一波安装之后 3.在nginx 文件夹打开命令行:cmd 4.开启nginx 服务命令:star ...