一、图片验证码

方式一:

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 定制验证码的更多相关文章

  1. django生成验证码

    django生成验证码 # 制作验证码 def verify_code(): # 1,定义变量,用于画面的背景色.宽.高 # random.randrange(20, 100)意思是在20到100之间 ...

  2. Django之验证码 + session 认证

    验证码 + session认证 目录结构 . └── project ├── app01 │   ├── admin.py │   ├── apps.py │   ├── __init__.py │  ...

  3. python django 实现验证码的功能

    我也是刚学Python  Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能 ...

  4. Django之验证码

    一.自己生成验证码 二.极验科技互动验证码 使用前步骤:下载官网文件——pip install geetest——引入其封装的js模块 代码分为三段:生成验证码——显示验证码——验证验证码. from ...

  5. Django 生成验证码或二维码 pillow模块

    一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用.   PIL模块只支持到Python 2 ...

  6. django(一)验证码

    这里讲讲在django中使用第三方插件验证码的流程. 一. 先安装pillow, 通过 python -m pip install pillow 二.安装完后,在官方网站上看操作过程.地址:pillo ...

  7. Django Redis验证码 密码 session 实例

    1.settings CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCach ...

  8. django 定制管理页面外观 模板文件不生效的解决方法

    问题描述:大概过程跟下面描述的一样,简单来说就是照着例子学习的时候定制管理页面外观,按照文档要求拷贝了base_site.html文件到templates目录下,并且按照要求修改了settings.p ...

  9. django的验证码

    pip install Pillow==3.4.1在views.py中创建一个视图函数 from PIL import Image, ImageDraw, ImageFont from django. ...

随机推荐

  1. bzoj2330: [SCOI2011]糖果(差分约束)

    差分约束裸题,a==b的话分别建a>=b a<=b的边就行.倒序加边不然会TLE是什么鬼 #include<iostream> #include<cstring> ...

  2. [CQOI2011]放棋子

    想到了50%吧算是. f[i][j][k]表示,前i种,占了j行k列.方案数. 发现,转移要处理:“用c个棋子,占据n行m列”的方案数. 设g[i][j][k]表示,i行j列用k个棋子占的方案数.直接 ...

  3. ACE中UDP通信

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/07/585205.html udp是一种无连接的协议,提供无连接不可靠的服务. 在ace中,通 ...

  4. ubuntu切割mp3文件

    ffmpeg -i InputFile -vn -acodec copy -ss 00:00:00 -t 00:01:32 OutPutFile

  5. c++11新特性之nullptr

    在c++11中,nullptr可完全代替NULL.  然而NULL和nullptr还是稍有不同,NULL可被转化为int类型,而nullptr不能.因此nullptr对NULL在进行模板推导或者函数重 ...

  6. bzoj4810 [Ynoi2017]由乃的玉米田 bitset优化+暴力+莫队

    [Ynoi2017]由乃的玉米田 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 917  Solved: 447[Submit][Status][Di ...

  7. Fixed: The Windows Process Activation Service service terminated with the following error: The system cannot find the file specified

    I'm not yet clear what I did, but I'm blogging it so it can be found if someone else has this issue. ...

  8. iPhoneX页面安全区域与内容重叠问题

    转载自:https://www.cnblogs.com/lolDragon/p/7795174.html 1.  iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iP ...

  9. 【c#】winform 上传图片

    1.拖拽上传图片 1.1.后台代码中修改窗体属性,添加 AllowDrop = true 1.2.给窗体添加拖拽事件,在事件列表找到拖拽 双击即可: 在 DragDrop 生成的方法中添加代码如下: ...

  10. http-反向代理学习

    主要是学习了反向代理. 结合公司的方向代理使用,然后与同事进行交流,知识还是需要通过交流才能印象深刻,以后多多交流.