Django使用django-simple-captcha详细步骤

18 篇文章 1 订阅
14 篇文章 1 订阅

前言


今天介绍一个django开源的图形验证码模块django-simple-captcha,利用它我们无需再手动书写验证码了,并且它还提供了不同类型的验证码(比如数字的算术运算),且使用方便(配置文件配置即可)


使用步骤

  • 安装 django-simple-captcha
pip install django-simple-captcha
  • 安装依赖库 pillow
pip install pillow
  1. 注意: 如果显示已经安装过pillow,但是运行Django却报错,大致如下
    ModuleNotFoundError: No module named 'PIL'
  2. 解决方法
  • 先卸载原有的pillow,pip uninstall pillow
  • 在重新安装pillow,pip install pillow
  • Django应用django-simple-captcha
  1. 挂载应用
    在这里插入图片描述
  2. 配置setting.py文件
# 使用django-simple-captcha验证码
CAPTCHA_IMAGE_SIZE = (80, 30)  # 设置 captcha 图片大小
CAPTCHA_lENGTH = 4  # 设置字符个数
CAPTCHA_TIMEOUT = 1  # 超时(minutes)
# 输入格式:输入框 验证码图片 隐藏域
CAPTCHA_OUTPUT_FORMAT = '%(text_field)s %(image)s %(hidden_field)s'
CAPTCHA_NOISE_FUNCTIONS = (
   'captcha.helpers.noise_null',
   'captcha.helpers.noise_arcs',  # 线
   'captcha.helpers.noise_dots',  # 点
)
# 随机字符验证码
CAPTCHA_CHALLENGE_FUNCT = >>'captcha.helpers.random_char_challenge'
  1. 主路由配置路由
path('captcha/', include('captcha.urls')),
  1. 在form.py中添加验证码字段
    在这里插入图片描述
  2. 视图简单应用验证码Demo
    在这里插入图片描述
  3. 模板中配置
    在这里插入图片描述
  4. 注意:如果运行Django出现django.template.exceptions.TemplateDoesNotExist: captcha/image.html
    原因可能是setting.py中模板配置有问题,APP_DIRS要设置成True
    在这里插入图片描述
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django使用django-simple-captcha生成验证码可以通过以下步骤现: 1. 安装django-simple-captcha库: 在终端中运行以下命令安装django-simple-captcha库: ``` pip install django-simple-captcha ``` 2. 在Django项目的`settings.py`文件中添加`captcha`应用: 打开`settings.py`文件,找到`INSTALLED_APPS`列表,将`'captcha'`添加到其中。 3. 运行数据库迁移: 在终端中运行以下命令,将`captcha`应用的数据库迁移到你的项目中: ``` python manage.py migrate captcha ``` 4. 在需要生成验证码的表单中添加验证码字段: 在你的表单类中导入`CaptchaField`,并将其作为一个字段添加到表单中。例如: ```python from captcha.fields import CaptchaField class MyForm(forms.Form): # 其他字段... captcha = CaptchaField() ``` 5. 在视图函数中验证验证码: 在你的视图函数中,可以通过调用`form.is_valid()`来验证验证码是否正确。例如: ```python def my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # 验证码正确,执行相应的逻辑 # ... else: # 验证码错误,处理错误信息 # ... else: form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 6. 在模板中显示验证码输入框: 在你的模板文件中,可以通过`form.captcha`来渲染验证码输入框。例如: ```html <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">提交</button> </form> ``` 这样,你就可以在Django使用django-simple-captcha生成验证码了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值