django登录验证码操作
import random
from PIL import Image, ImageDraw, ImageFontdef v_code(request):def random_color():return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
# 创建一个随机颜色的图片对象img_obj =Image.new('RGB',(250,30),random_color())
# 实例化一个画笔对象pen_obj =ImageDraw.Draw(img_obj)
# 加载字体对象font_obj =ImageFont.truetype('static/font/kumo.ttf',28)tmp = []for i in range(5):l = chr(random.randint(97, 122)) # 生成随机的小写字母u = chr(random.randint(65, 90)) # 生成随机的大写字母n = str(random.randint(0, 9)) # 生成一个随机的数字# 从上面三个随机选一个r = random.choice([l, u, n])pen_obj.text((40*i+30,0),r,fill=random_color(),font=font_obj)tmp.append(r)# # 加干扰线# width = 250 # 图片宽度(防止越界)# height = 35# for i in range(5):# x1 = random.randint(0, width)# x2 = random.randint(0, width)# y1 = random.randint(0, height)# y2 = random.randint(0, height)# pen_obj.line((x1, y1, x2, y2), fill=random_color())## # 加干扰点# for i in range(40):# draw_obj.point([random.randint(0, width), random.randint(0, height)], fill=random_color())# x = random.randint(0, width)# y = random.randint(0, height)# pen_obj.arc((x, y, x+4, y+4), 0, 90, fill=random_color())v_code=''.join(tmp).upper()request.session['v_code']= v_code# with open("static/imgs/vcode.png", "wb") as f1:# img_obj.save(f1, format="PNG")## with open("static/images/vcode.png", "rb") as f:# img_data = f.read()# 直接在内存中保存图片替代io操作from io import BytesIOf1 =BytesIO()img_obj.save(f1, format="PNG")img_data = f1.getvalue()return HttpResponse(img_data, content_type="image/png")
在视图函数中定义此方法,在路由中添加次视图函数的调用
url(r'^v_code/', views.v_code,name='v_code'),
在模板中添加登录控件
<div class="login-center clearfix"><div class="login-center-img"><img src="{% static 'imgs/password.png' %}"></div><div class="login-center-input"><input type="text" name="v_code" value="" placeholder="请输入验证码" οnfοcus="this.placeholder=''"οnblur="this.placeholder='请输入您的验证码'"><div class="login-center-input-text">验证码</div></div></div>
添加验证码的更换
<script>img = document.getElementById('v_code');img.onclick = function () {img.src += '?'}
</script>
最重要的一点:此路由不能通过中间件的检验,因此,将此路由添加至白名单
最后完成django的登录验证码功能的添加
转载于:https://www.cnblogs.com/wszxdzd/p/9917977.html
django登录验证码操作相关推荐
- Django登录验证码实现
登录验证码实现 只实现验证码功能,没有样式.后续验证码替换可改为ajax请求,实现局部刷新. 路由代码: from django.contrib import admin from django.ur ...
- Django前后端分离实现登录验证码功能
Django前后端分离实现登录验证码功能 当下最流行最热门的开发方式当属前后端分离开发,分工也更加明确与专注,前端也是越来越难,几天不学习就跟不上节奏,一个月不学习可以好不夸张的说,你已经不适合这个行 ...
- django admin 验证码点击刷新
django admin 验证码点击刷新 很多场景需要验证码功能,比如登录.我们可以直接使用django的第三方库 django-simple-captcha 模块来实现验证码功能,但是如果需要刷新验 ...
- Python学习---Django的基础操作180116
Django创建数据库操作 django流程之model实例 settigs.py:更改Django2.0.1的配置,更新为之前的路径配置 'DIRS': [os.path.join(BASE_DIR ...
- Django之验证码的实现,简单快捷的方法
Django之验证码的实现,简单快捷的方法 实现验证码随网页变动即时刷新,实现有期限时间 请确保安装好pillow 直接show code: 0.路由urs.py from django.urls i ...
- [Django ]Django 的数据库操作
Django 的数据库操作 有之前的基础,那么我们就可以开始对数据库进行操作. 一.数据库配置 配置 MySql 在主目录的 settings.py 中修改 Python 1 2 3 4 5 6 7 ...
- 关于小程序区服登录账号换模拟器登录的操作
关于小程序区服登录账号换模拟器登录的操作 游戏内已经绑定手机号了,有一个任务是绑定手机的. 打开模拟器里我是大东家,选择忘记密码,填绑定手机号验证短信,然后输入新密码. 然后就可以用手机号+密码在模拟 ...
- 爬虫三(Bs4搜索、Selenium基本使用、无界面浏览器、Selenium自动登录百度案例、自动获取12306登录验证码案例、切换选项卡、浏览器前进后退、登录Cnblogs获取Cookie自动点赞)
文章标题 一.Bs4搜索文档树 二.CSS选择器 三.selenium基本使用 四.无界面浏览器 五.selenium其他使用 1)自动登录百度案例 2)获取位置属性大小.文本 3)自动获取12306 ...
- 爬虫日记-模拟登录cookie操作
模拟登录cookie操作 我们之前已经实现了模拟人人网登录,那么我们接下来是不是可以直接用requests模块获取登录成功的界面的内容? 于是我们就那这个url做了请求. 结果访问到的html依然是登 ...
- Django中间件实现操作日志记录
Django中间件实现操作日志 本文通过Django中间件的流程,实现操作日志记录的功能,模块化.拿来即用. 功能描述:通过中间件记录 请求时间.操作用户.请求URL.请求方法.请求IP.请求参数和响 ...
最新文章
- Vim----ma6174
- 数据蒋堂 | 人工智能中的“人工”
- Spring集成spymemcached
- 举两个栗子:如何正确建立个人的机器学习项目集
- IdentityServer4 使用OpenID Connect添加用户身份验证
- DL之Panoptic Segmentation:Panoptic Segmentation(全景分割)的简介(论文介绍)、全景分割挑战简介、案例应用等配图集合之详细攻略
- [Leetcode总结] 102.二叉树的层序遍历
- python vbs库_Python语言之requests库
- 开放源代码_您是否在开放源代码中看到了这些个性?
- SQLServer · 特性分析 · SQL Server 2012的分析函数未必都理解透了(2)
- OBJECT_ID(Transact-Sql)
- 难以置信:某国产平台制定打包deb规范,竟然没有测试
- php李炎恢笔记,李炎恢PHP笔记2
- Word小技巧:图片批量裁剪与大小调整
- MySQL-运维工具 pt-archiver数据归档工具
- php 微信登录手机网站,微信PC端登录和手机端登录逻辑分享
- 关于c++16进制字符串与ASCII字符串的相互转换
- 内存管理Memorynbsp;OC——第九天
- NY891 区间选点 找点
- 纯前端实现xls表格下载