一、PIL库
PIL : Python图像库PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。
环境中下载:pip install pillow
图像验证码
1. 初始化: 字符长度,宽度,高度,字符大小;
2. 随机产生字符:26个大小写字母和10个数字为源;
3. 随机颜色:让字符的颜色随机;
4. 绘制干扰线和干扰点
5. 模糊滤镜
同样,将图像验证码文件放置在utils文件夹编写,需求时进行导入调用
import os import random import string from PIL import Image, ImageFont, ImageDraw, ImageFilter class ImageVerify: def __init__(self, x=140, y=40, length=4, size=28): """ 初始化 :param x: 图片宽度 :param y: 图片高度 :param length: 字符的个数 :param size: 字体大小 """ self.x = x self.y = y self.length = length self.size = size def random_str(self): """ 随机生成制定长度的字符串 数据源:26个字母和10个数字 :return: 生成的字符串 """ soucre = string.ascii_letters + string.digits # string模块生成字符串信息 return ''.join(random.sample(soucre, self.length)) def random_color(self, start=0, end=255): """ 随机生成颜色 :param start: 颜色范围最小值 :param end: 颜色范围最大值 :return: tuple(r, g, b) 0~255 """ res = [random.randint(start, end) for i in range(3)] # []得到数据列表,()得到生成器并非元组,所以生成列表后转成元组 return tuple(res) def random_lines(self, draw): """ 绘制干扰线 :param draw: draw对象 画笔 :return: """ for i in range(self.length): lines = [(random.randint(0, self.x), random.randint(0, self.y)) for i in range(2)] draw.line(lines, fill=self.random_color(64, 200)) def random_points(self, draw, rate): """ 绘制干扰点 :param draw: 画笔 :param rate: 频率 :return: """ for x in range(self.x): for y in range(self.y): if random.randint(1, 100) <= rate: draw.point((x, y), fill=self.random_color(64, 200)) def verify_code(self): """ 生成验证码图片 :return: 图片及正确答案 """ # 创建Image对象 创建画布 image = Image.new('RGB', (self.x, self.y), (255, 255, 255)) # 白色背景画布 # 创建font对象 字体 file = os.path.dirname(os.path.abspath(__file__)) font = ImageFont.truetype(f'{file}/cybb.ttf', self.size) # 创建draw对象 画笔,绘制图形,线,点 draw = ImageDraw.Draw(image) # 绘制干扰线与干扰点 self.random_lines(draw) self.random_points(draw, 15) # 随机生成字符答案,验证码值 code = self.random_str() # 用画笔将font类型的字体对应的进行字符内容和颜色的绘制 for i in range(self.length): draw.text((35*i+5, 3), code[i], font=font, fill=self.random_color(30, 128)) # 模糊滤镜 # image = image.filter(ImageFilter.BLUR) # 返回图形及验证码 return image, code if __name__ == '__main__': imgVerfiy = ImageVerify() img, code = imgVerfiy.verify_code() # with open('test.png', 'wb') as fp: # img.save(fp) # print(code)
二、Redis缓存
1. 连接配置
config/dbs文件夹中新建redis_rev.py文件,给定redis配置(可直接在settings.py文件中给定,因为也是需要调用导入的)
2. 缓存配置
settings.py文件配置
3. 使用
用户views.py文件中进行调用
4. 自定义认证响应
定义函数处理返回数据
settins.py配置函数为自定义认证响应函数
三、前端项目
1. VUE3
JS的框架,是一套构建用户界面的渐进式框架。只关注视图层,采用自底向上增量开发的设计。通过尽可能简单的API实现响应的数据绑定和组合的视图组件。
①下载安装 百度直接搜索 node.js,进入官网进行下载,然后安装,可自选路径;
②cmd,执行npm install -g @vue/cli 即可
③ vue -V 确认版本,若出现对应版本则安装OK
④前端启动,进入pyCharm文件夹的nod.js文件夹中,在抬头输入npm启动vue的cmd界面(跟启动juepyter notebook类似)(没有对应的前端文件)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理