Django 定制验证码
一、图片验证码
方式一:
def get_validCode_img(request):
path=os.path.join(settings.BASE_DIR,'static','image','1.jpg')
with open(path,'rb') as f:
img=f.read()
return HttpResponse(img)
二、自定义图片验证码磁盘管理
方式二:
def get_validCode_img(request):
from PIL import Image
img=Image.new(mode='RGB',size=(120,30),color='green')
f=open('validCode.png','wb')
img.save(f,'png')
with open('validCode.png', 'rb') as f:
data=f.read()
return HttpResponse(data)
三、自定义图片验证码内存管理
方式三:
def get_validCode_img(request):
from io import BytesIO # 内存管理
from PIL import Image
img = Image.new(mode='RGB', size=(120, 30), color='blue')
f = BytesIO() # 文件句柄
img.save(f, 'png') data=f.getvalue() return HttpResponse(data)
四、自定义图片验证码画图
方式四:
def get_validCode_img(request):
from io import BytesIO # 内存管理
from PIL import Image,ImageDraw,ImageFont
from random import randint,choice
color=(randint(0,255),randint(0,255),randint(0,255))
img = Image.new(mode='RGB', size=(120, 30), color=color) draw=ImageDraw.Draw(img,"RGB")
font=ImageFont.truetype("static/fonts/kumo.ttf",20) valid_list=[]
for i in range(5):
random_num=str(randint(0,9))
random_lower=chr(randint(65,90)) # 小写字母
random_upper=chr(randint(97,122)) # 大写字母 random_chr=choice([random_num,random_lower,random_upper])
draw.text([10+i*22,2],random_chr,color=color,font=font)
valid_list.append(random_chr) f = BytesIO() # 文件句柄
img.save(f, 'png')
data = f.getvalue()
valid_str="".join(valid_list)
print(valid_str)
request.session["keepValidCode"]=valid_str
return HttpResponse(data)
字体地址:
https://files.cnblogs.com/files/supery007/blogCMS.rar
Django 定制验证码的更多相关文章
- django生成验证码
django生成验证码 # 制作验证码 def verify_code(): # 1,定义变量,用于画面的背景色.宽.高 # random.randrange(20, 100)意思是在20到100之间 ...
- Django之验证码 + session 认证
验证码 + session认证 目录结构 . └── project ├── app01 │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ...
- python django 实现验证码的功能
我也是刚学Python Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能 ...
- Django之验证码
一.自己生成验证码 二.极验科技互动验证码 使用前步骤:下载官网文件——pip install geetest——引入其封装的js模块 代码分为三段:生成验证码——显示验证码——验证验证码. from ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- django(一)验证码
这里讲讲在django中使用第三方插件验证码的流程. 一. 先安装pillow, 通过 python -m pip install pillow 二.安装完后,在官方网站上看操作过程.地址:pillo ...
- Django Redis验证码 密码 session 实例
1.settings CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCach ...
- django 定制管理页面外观 模板文件不生效的解决方法
问题描述:大概过程跟下面描述的一样,简单来说就是照着例子学习的时候定制管理页面外观,按照文档要求拷贝了base_site.html文件到templates目录下,并且按照要求修改了settings.p ...
- django的验证码
pip install Pillow==3.4.1在views.py中创建一个视图函数 from PIL import Image, ImageDraw, ImageFont from django. ...
随机推荐
- BZOJ1034 [ZJOI2008]泡泡堂BNB 【贪心】
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3531 Solved: 1798 [Submit][ ...
- bzoj4518: [Sdoi2016]征途(DP+决策单调性分治优化)
题目要求... 化简得... 显然m和sum^2是已知的,那么只要让sigma(si^2)最小,那就变成了求最小平方和的最小值,经典的决策单调性,用分治优化即可. 斜率优化忘得差不多就不写了 #inc ...
- Ubuntu16.04+Cuda8.0+1080ti+caffe+免OpenCV3.2.0+faster-rCNN教程
一.事先声明:1.Ubuntu版本:Ubuntu使用的是16.04.而不是16.04.1或16.04.2,这三个是有区别的.笔者曾有过这样的经历,Git上一个SLAM地图构建程序在Ubuntu14.0 ...
- iOS AFNetworking 2.6.0框架导入报错解决方法
最近手动导入AFNetworking 2.6.0框架时发现Xcode报如下3个错误: 1. Use of undeclared identifier ‘kSecFormatUnknown‘ 2. Us ...
- POJ 3107 树形dp
Godfather Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6812 Accepted: 2390 Descrip ...
- C++11新特性,对象移动,右值引用,移动构造函数
C++11新标准中的一个最主要的特性就是移动而非拷贝对象的能力.接下来简要介绍一下相关概念. 右值引用 所谓右值引用就是必须绑定到右值的引用.通过 && 而不是 & 来获得右值 ...
- java主线程捕获子线程中的异常
本文主要参考:<think in java> 好,下面上货. 正常情况下,如果不做特殊的处理,在主线程中是不能够捕获到子线程中的异常的. 例如下面的情况. package com.xuey ...
- 上下文管理器 contextlib
from contextlib import contextmanager @contextmanager def tag(name): print "<%s>" % ...
- 用reduce实现简单的pipe
function pipe(src, ...fns){ return fns.reduce(function(fn1, fn2){ return fn2(fn1) }, src); } undefin ...
- 【20151105noip膜你赛】bzoj3652 bzoj3653
题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...