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. jquery validate 详解

    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&qu ...

  2. MapReduce中的排序(附代码)

    在直接学习hadoop的排序之前还要了解一些基本知识. Hadoop的序列化和比较接口 Hadoop的序列化格式:Writable Writable是Hadoop自己的序列化格式,还要一个子接口是Wr ...

  3. 启用nginx报错80端口被占用

    最近在本机跑nginx,启动后报错,怀疑80端口被占用 netstat -ano|findstr 尝试一:查看后发现端口被一个System pid 为4的一个程序占用.我在资源管理器中尝试将Syste ...

  4. 【Mysql】之视图操作

    一.视图实例1-创建视图及查询数据操作 首先,创建三个表:user.course.user_course 表:user CREATE TABLE `user` ( `id` ) NOT NULL AU ...

  5. 10 Memcached 一致性哈希分布式算法原理与实现[PHP实现]

    <?php header("Content-type:text/html;charset=utf-8"); interface hash{ public function _ ...

  6. postman 测试API - 获取/调用 token

    1.使用全局变量保存token 2.再调用 参考文章 http://www.jianshu.com/p/13c8017bb5c8 https://testerhome.com/topics/6555

  7. umbraco v7.6.4 surface controller not found 大深坑!

    注意在修改后台地址过程中对于web.config里的umbracoPath 如果你改成了~/admin,surface controller的路由就变成了 /admin/surface/{contro ...

  8. 用C#来学习唐诗三百首和全唐诗

    Begin 最近把项目做完了,闲来无事,就想做点好玩的事情,刚好前几天下载了[唐诗三百首]和[全唐诗]这两个txt文件,正好用C#来整理一下. 然后导出QData格式,可以给其他软件读取. 以后弄个开 ...

  9. centos7.0 tomcat9.0 ip访问 manager

    版本:Tomcat 9.0 问题:新安装的tomcat,用其他机器访问tomcat的Server Status.Manager App.Host Manager三个页面均显示403(本机访问没有问题) ...

  10. spring 构造方法注入和setter方法注入的XML表达

    1.构造方法注入 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC ...