Django验证码问题处理
一开始给自己的Django程序的登陆界面添加验证码,是用PIL库生成验证码图片,将图片存入内存,读取到页面显示这么个过程
但是在将Django项目上传部署到服务器后,发现登陆界面验证码图片500error挂掉了,实在是无法处理这个
那么就去找已有的轮子来修改项目了
找到了django-simple-captcha这个第三方库,官方文档:http://django-simple-captcha.readthedocs.io/en/latest/usage.html
需要说明一下,这个库依赖pillow在Python3中,
可能是因为我使用了anaconda来管理环境,可能和原有的PIL冲突了,一开始安装失败,并且原有的PIL也gg了
最后,卸载重安大法伺候。。。
使用方法:
1、将captcha添加到settings.py文件的app目录中:(这个插件就是个app,不需要再去用命令创建app,写进去就可以直接用)
2、在总路由urls.py中添加相应的url指向:
3、执行python manage.py migrate captcha更新数据表,生成captcha_captchastore名称的数据表
4、captcha这个验证码插件配合Django的forms表单系统,蛮不错的:
(1)在app下建立新文件forms.py:
(2)在登陆页视图py文件中,导入forms.py中创建的表单类,在视图函数中,创建一个表单对象,传递到页面上:
(3)在登陆页html中,修改form表单中的写法:
5、点击刷新验证码图片,可以使用JavaScript的click事件,加上下列代码即可:
以上也只是浅显的用法,满足目前的需要,其他的设置什么的可以看文档