django 中验证码登录验证的实现
来源:互联网 发布:淘宝评论如何上传视频 编辑:程序博客网 时间:2024/05/22 14:47
django中有关于登录验证的第三方模块,大家可以自己去搜搜,这里说一下自定义验证码登录的情况(可以参考http://www.cnblogs.com/alex3714/articles/6662365.html这篇文章)。
我们生成的验证码图片在发送给html前要先存放,可以有两种地方:
1.内存中,我们开发环境下时可以这样用,但是在生产时最好别这样,因为访问量太高的话,你内存就等着爆吧;
2.static(静态文件)中,并且可以设置在用了登录成功后可以立即删除掉图片,节省开销。
至于具体的实现过程,可以看上面的文章,不过有几个细节作者没有说清楚,我是根据我自己的情况将它完善了。
1.表单
<form action="/code/checkcode/" method="post"> {% csrf_token %} <div class="form-group"> <div class="input-group"> <div class="input-group-addon"> <img height="30px" src="/static/image/{{ today_str }}/{{ filename }}.png" /> </div> <input style="height: 50px" type="text" name="verify_code" class="form-control" placeholder="验证码"> <input type="submit" name="verify_code_key" value="submit" > </div> </div></form>2.setting.py存储路径设置
VERIFICATION_CODE_IMGS_DIR = 'E:\web project\web\webchat\static\image'
3.登录和验证
def acc_login(request): today_str = datetime.date.today().strftime("%Y%m%d") verify_code_img_path = "%s/%s" %(settings.VERIFICATION_CODE_IMGS_DIR, today_str) if not os.path.isdir(verify_code_img_path): os.makedirs(verify_code_img_path,exist_ok=True) print("session:", request.session.session_key) random_filename = "".join(random.sample(string.ascii_lowercase,4)) random_code = verify_code.gene_code(verify_code_img_path,random_filename) cache.set('my_code', random_code,30) return render(request, 'login.html', {"filename": random_filename, "today_str": today_str})def checkcode(request): err_msg = '' if request.method == "POST": _verify_code = request.POST.get('verify_code') if cache.get('my_code') == _verify_code: err_msg = 'successful' else: err_msg = "error!" return render(request, 'test.html', {'error': err_msg})4.最后验证码图片可以自己设置删除,节省开销,很简单的,就不写了。
阅读全文
0 0
- django 中验证码登录验证的实现
- Django实现登录验证功能
- Django实现验证码
- 登录验证码的实现
- Django中示例验证码的实现总结
- 在Django中实现验证码
- django 实现未经登录验证的url过滤
- Python+django实现邮箱验证登录
- Django登录验证
- django -- 登录验证
- 登录验证码实现
- ASP.NET中登录页验证码的实现
- Django中使用验证码的方式
- 关于Django的验证用户名密码登录
- 利用Zend_Form_Element_Captcha 实现登录验证的验证码功能
- php登录验证码的实现
- Extjs4---登录验证码的实现+struts2
- JSP带验证码的登录实现
- spark的rdd.saveastextfile可以追加写入hdfs吗
- tomcat异常:Illegal access: this web application instance has been stopped already. Could not load ...
- 关于 struts2 Unable to load configuration.
- 用U盘安装Ubuntu系统,但不知道如何设置U盘启动
- Oracle索引与视图的创建与应用
- django 中验证码登录验证的实现
- 自学qt之 事件
- 【面试题20】顺时针打印矩阵
- 最长公共子序列问题
- Centos7.3.1611安装mysql5.7.18 rpm教程
- POJ 2492 A Bug's Life 带权并查集!
- SpringMVC框架
- java-RSA加密解密,支持分段加解密
- android上传文件至服务器(android端+服务器端)