首页 > 其他分享 >头像处理,随机验证码

头像处理,随机验证码

时间:2023-01-03 19:24:16浏览次数:40  
标签:obj randint random 验证码 头像 随机 图片

 上传头像

1. 添加图片文件(可以上传成功,但前端无法展示)

效果展示:

 

 

 2. 用户头像实时展示:

 效果展示:

 

产生随机验证码

需要用到的两个模块:

1. pillow模块

from PIL import Image, ImageFont, ImageDraw

"""
Image      产生图片
ImageFont  字体样式
ImageDraw  画笔对象
"""

2. io模块

from io import BytesIO,StringIO

"""
BytesIO    在内存中临时存储 读取的时候以bytes格式为准
StringIO   在内存中临时存储 读取的时候以字符串格式为准
"""

先定义一个随机函数:

import random


def get_random():
    return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)

产生随机验证码

随机验证码的产生步骤:

1 先产生颜色随机变换的图片对象
2 产生随机的字母或数字
3 将随机的字母和数字写到图片上
4 后端保存验证码,便于后续对比

代码:

def get_code_func(request):
    # 编写验证码
    # 先产生图片对象
    img_obj = Image.new('RGB', (350, 35), get_random())
    # 将图片对象交给画笔对象
    draw_obj = ImageDraw.Draw(img_obj)
    # 确定字体样式(ttf文件)
    font_obj = ImageFont.truetype('static/font/111.ttf', 35)
    # 产生随机验证码
    code = ''
    for i in range(5):
        random_upper = chr(random.randint(65,90))
        random_lower = chr(random.randint(97,122))
        random_int = str(random.randint(1,9))
        # 三选一
        temp_choice = random.choice([random_upper,random_lower,random_int])
        # 写到图片上
        draw_obj.text((i*60+45,0),temp_choice,font=font_obj)
        code += temp_choice
    # 后端保存验证码,便于后续的比对
    request.session['code'] = code
    io_obj = BytesIO()
    img_obj.save(io_obj,'png')
    return HttpResponse(io_obj.getvalue())

效果展示:

 

上面的随机验证码是在刷新网页的时候随机变换,这样的话前面填写过的信息也会随之刷新,为了不影响前面已经填写过的信息,我们需要添加局部刷新功能。 

局部刷新

1. 给前端的图片添加一个id值

2. 给该图片id绑定一个点击事件

之后点击图片即可变换新的验证码。

标签:obj,randint,random,验证码,头像,随机,图片
From: https://www.cnblogs.com/chen-ao666/p/17020823.html

相关文章

  • 图片验证码kaptcha基本用法
    本文主要内容Kaptcha在SpringBoot环境下的用法实例后端生成的验证码图片以Base64和流的形式响应给前端,渲染到HTML内容导览Kaptcha配置参数说明配置类KaptchaConf......
  • python随机生成字符串
    importrandomdefgenerate_code(code_len=4):all_charts='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'last_pos=len(all_charts)......
  • BSS项目(一): 表设计 注册功能 登录功能 生成随机验证码
    目录表设计1.确定表的数量2.确定表的基础字段自关联字段3.确定表的外键字段表关系图项目初建流程备忘注册功能登录功能生成随机验证码表设计#仿造博客园项目 核心:文章......
  • pikachu--验证码绕过(on server)
    文章内容简介:本文章是基于pikachu靶场的验证码绕过(onserver),后台会把提交的验证码进行验证,看是否正确,但是该验证仍然有漏洞,因为其验证码可以重复使用,相当于未验证该验......
  • Spring Security-- 验证码功能的实现
    springsecurity4添加验证码​​http://www.itwendao.com/article/detail/165400.html​​​​http://www.itdadao.com/articles/c15a754492p0.html​​ @BeanpublicEmbe......
  • C语言中产生随机数
    问:C语言中产生随机数的函数是什么?C语言中产生随机数的函数是什么?(好象有两个)以及这两个函数的头文件是什么?问题补充:rand和srand有什么区别没?答:#inc......
  • mt19937随机数生成_学习笔记
    好文传送门1好文传送门2使用模板:#include<bits/stdc++.h>usingnamespacestd;mt19937rnd(std::random_device{}());intmain(){for(inti=1;i<=10;i++)......
  • C#.NET 随机排序集合(列表\数组) | 打乱集合(列表\数组)
    直接上代码:///<summary>///重排列表(打乱列表)///</summary>///<paramname="arr"></param>publicstaticList<string>ConfusionArray(List<string>list){......
  • 微人事中的验证码实现
    前言说到登录,我相信大家最常见的首先是输入用户名和密码,然后输入程序生成的验证码完成登录;其次就是通过JWT实现鉴权了。在我的Springboot整合Jwt实现用户认证中,详细地......
  • 超多制作模板的姓氏头像生成器微信小程序源码
    ☑️编号:ym612☑️品牌:无☑️语言:小程序☑️大小:0.2MB☑️类型:姓氏头像生成器☑️支持:小程序......