django---simple--captcha验证码详细安装

本文详细介绍如何在Django项目中集成simple-captcha库实现验证码功能,包括安装依赖库、配置settings.py、urls.py、forms.py及views.py,最终在模板中显示验证码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,首先pip安装

pip install django-simple-captcha

因为有PIL依赖顺便检查一下有没有pil库

pip install pillow

2,settings.py中的installapp中添加captcha

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'post',
    'user',
    'captcha',
]

3,总的urls路由中也要添加!

urlpatterns = [
    path('admin/', admin.site.urls),
    #想使用命名空间  include需要传一个元组 (app路径,app名称)
    url(r'^',include(('user.urls','user'),namespace='user')),
    url(r'^captcha/',include('captcha.urls')),

]

captcha不支持命名空间的写法

4,然后再froms中添加captchaField字段

from django import forms
from captcha.fields import CaptchaField

class UserForm(forms.Form):
    username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
    password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'}))
    captcha=CaptchaField(label='验证码')

5,然后配置一下登录的views.py文件中这样写

from django.views import View
from user.froms import UserForm
from user.models import *
# Create your views here.

    class Login(View):
    
        def get(self,request):
            capt=UserForm()
            return render(request,'login.html',locals())

local()会把当前函数内的局部变量变成一个dict
6,最后再模板文件中接收一下这个变量

<form method="post" action="/login/">
    {% csrf_token %}
    账号:<input type="text" maxlength="20" name="username"><br>
    密码:<input type="password" maxlength="20" name="password"><br>
    {{ capt.captcha }}
    <span style="color: red;">{{ error }}</span>
    <input type="submit" value="登录">
</form>

这样就ok了 打开看一看把

如果大小不合适 还可以再调整

ps:
如果报OSError: cannot open resource错误

出现这个问题的根本原因是因为字体的问题,系统中的字体并不存在要调用的字体即Vera.ttf字体,所以在查找字体时会报错误,最简单和直接的办法就是安装一下,
其实在安装完captcha之后,其根目录下已经有了这个字体,路径在F:django项目中\env\Lib\site-packages\captcha\fonts\vear.ttf
点击安装即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值