如何在 Django 中实现验证码功能?

2023-04-13 00:00:00 功能 验证码 如何在

在 Django 中实现验证码功能可以使用第三方库 django-simple-captcha,该库提供了多种验证码类型(数字、字母、算术等)和自定义样式的功能。

安装 django-simple-captcha:

pip install django-simple-captcha

在 settings.py 中添加以下配置:

INSTALLED_APPS = [
    # ...
    'captcha',
]

CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.random_char_challenge'
CAPTCHA_LENGTH = 6  # 验证码长度
CAPTCHA_FONT_SIZE = 28  # 字体大小
CAPTCHA_FONT_PATH = 'path/to/font.ttf'  # 字体文件路径
CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_arcs',)  # 杂点类型
CAPTCHA_BACKGROUND_COLOR = 'white'  # 背景色
CAPTCHA_FOREGROUND_COLOR = 'black'  # 前景色

在 forms.py 中定义表单类,添加验证码字段:

from captcha.fields import CaptchaField

class LoginForm(forms.Form):
    # ...
    captcha = CaptchaField()

在模板中使用验证码:

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">登录</button>
</form>

以上是使用 django-simple-captcha 实现验证码的基本步骤,具体可以根据需求自定义样式和操作逻辑。

相关文章