Django Form 核心功能与登录验证实战
本文介绍 Django Form 的四大核心功能,包括自动生成 HTML 标签、验证用户数据、保留提交内容及初始化页面。通过 views.py 和 login.html 的代码示例,演示如何定义 LoginForm 类并进行 POST 数据验证,帮助开发者快速掌握表单处理流程。
Django Form 核心功能概述
Django 框架中的 Form 组件主要具备以下核心功能:
- 自动生成对应的 HTML 表单标签
- 对用户提交的数据进行校验,并在出错时显示错误信息
- 在 HTML Form 提交失败时,保留用户上次输入的数据
- 用于初始化页面显示时的默认内容
后端视图与表单验证实现
在 views.py 中实现表单逻辑与验证流程
from django.shortcuts import render
# Create your views here.
from django.forms import Form
from django.forms import widgets
from django.forms import fields
# 对form表单进行数据验证
class LoginForm(Form):
user = fields.CharField(required=True) # 不能为空
pwd = fields.CharField(min_length=18)
def login(request):
if request.method == "get":
return render(request, 'login.html')
else:
obj = LoginForm(request.POST)#request.POST拿到的是POST的数据
"""
is_valid
1. 获取当前类中所有的字段
-LoginForm实例化时候,放入
self.fields = {
'user':正则表达式,
'pwd':正则表达式
}
2.循环self.fields
flag = True
for k,v in self.fields.items():
k是:user,pwd
v是:正则表达式
input_value = requests.POST.get(k)
flag = False
return flag
"""
if obj.is_valid():
print(obj.cleaned_data)#字典数据
else:
# print(obj.errors)#返回的是个err对象
print(obj.errors)#返回的是个err对象
return render(request,'login.html')
前端模板与用户交互
前端 login.html 模板的结构与交互设计
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form action="/login/" method="POST">
{% csrf_token %}
用户名 <input type="text" name="user">
密码 <input type="password" name="pwd">
<input type="submit" value="提交">
</form>
</body>
</html>
以上内容涵盖了 Django Form 的基本使用场景,希望能为读者的学习提供参考,欢迎持续关注本站获取更多技术资讯。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









