Django--6 Form类的使用,实现用户登录验证

        一般前端html页面中,通过form表单提交数据,后台接收数据,进行处理。对这些数据处理,后台比较麻烦。不但要判断数据格式是否正确,例如是否是邮箱;而且经常要进行数据转换,因为提交的数据是字符串的,后台需要的数据有些是数字,有些是其他类型。这些表单操作比较繁琐,因此Django设计了一个Form类来描述html表单,帮助或简化操作,form类主要有2个作用:

(1)可自动生成html代码,即input标签字段

(2)接收和处理用户提交的数据,可检查提交的数据,可将数据转换成python的数据类型

1 在应用目录下创建forms.py文件

 

2 根据表单字段创建Form类

         from django import forms

         class LoginForm(forms.Form):

                  username = forms.CharField()

                  password = forms.CharField()

3 在templates目录下创建myApp目录,新建login.html, index.html

  

创建URL路径login  index

4 在视图中创建login视图,通过form类实例化一个对象,传递到模板,生成form表单input字段

 

5 启动服务器

python manage.py runserver

6 修改标签名

7 创建用户表

生成迁移

python manage.py makemigrations

python manage.py migrate

创建用户

7 利用Form类后台登录验证

from django.shortcuts import render,redirect
from django.http import HttpResponse

from .forms import LoginForm
from . import models
# Create your views here.

def index(request):
    return render(request,'myApp/index.html')

def login(request):
    if request.method == "POST":
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']
            try:
                user = models.User.objects.get(name=username)
                if user.password == password:
                    return redirect('/index/')
                else:
                    message = "密码不正确!"
            except:
                message = "用户不存在!"
        return render(request, 'myApp/login.html', locals())

    else:
        login_form = LoginForm()
        context = {}
        context['login_form']=login_form
        return render(request,'myApp/login.html',context)

运行服务器,用户名不存在时,页面提示

用户名存在时,页面跳转

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

liuning2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值