python 之验证码

时间:2023-03-08 21:45:07
python 之验证码

验证码原理在于后台自动创建一张带有随机内容的图片,然后将内容通过img标签输出到页面。

安装图像处理模块:

pip3 install pillow

aaarticlea/png;base64,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" alt="" />

验证码Demo源码下载:猛击这里

代码地址:因为有文件没办法写在这里

http://pan.baidu.com/s/1c2bVqnA

补充:因为__setitem__所以这么写:

self.session["CheckCode"] = code# self.session.setitem("CheckCode", code),