Python Django Web开发——随机生成验证码的思维导图

在这里插入图片描述

Django-验证码

目的防止恶意用户

原生绘制

pillow

  • Image

    • 画布尺寸

    • 颜色

    • 模式

      • RGB
  • ImageDraw

    • 属于那个画布

    • 画完的位置

    • 封装绘制API

      • 文字

        • 例如验证码生成若干干扰点
      • 线 等等

  • ImageFont

    • 画笔的辅助工具

    • 字体

      • 可以从系统copy过来
    • 设置绘制的样式

需要将画布转为二进制流

并且添加格式限定

内存流

  • 使用了BytesIO库
  • 将图片存入内存流
  • 从流中获取数据值

再httpresponse

  • content_type

  • MIME

    • 标识打开我们数据的一个应用程序
    • image/png

验证码验证

客户端验证

  • 容易被突破

服务端验证

  • 在验证码生成的时候,存储验证码
  • 在用户提交的时候去验证码的有效性
  • 通过用户session与存的验证码比对

验证码的点击刷新

浏览器缓存策略

  • 是以url未标识

每次给不同的地址

  • 随机生成

    • 子主题 1

      • $(this).attr(“src”,"/app/getcode/?t="+Math.random())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值