目录:
FORMS介绍
在许多应用场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。
form组件的主要功能如下:
- 生成页面可用的HTML标签
- 对用户提交的数据进行校验
- 保留上次输入内容
基本使用forms组件实现注册功能
views.py
# 先定义好一个RegForm类:
from django import forms
# 按照Django form组件的要求自己写一个类
class RegForm(forms.Form):
name = forms.CharField(label="用户名")
pwd = forms.CharField(label="密码")
再写一个视图函数:
# 使用form组件实现注册方式
def register2(request):
form_obj = RegForm()
if request.method == "POST":
# 实例化form对象的时候,把post提交过来的数据直接传进去
form_obj = RegForm(request.POST)
# 调用form_obj校验数据的方法
if form_obj.is_valid():
return HttpResponse("注册成功")
return render(request, "register2.html", {
"form_obj": form_obj})
'''
# 判断信息是否完全合法
obj.is_valid()
# 获取字段及错误信息
obj.errors
{'password': ['Ensure this value has at least 3 characters (it has 2).'],
'email': ['Enter a valid email address.']}
# 获取符合条件的数据
obj.cleaned_data
'''
login2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册2</title>
</head>
<body>
<form action="/reg2/" method="post" novalidate autocomplete="off">
{% csrf_token %}
<div>
<label for="{
{ form_obj.name.id_for_label }}">{
{ form_obj.name.label }}</label>
{
{ form_obj.name }} {
{ form_obj.name.errors.0 }}
</div>
<div>
<label for="{
{ form_obj.pwd.id_for_label }}">{
{ form_obj.pwd.label }}</label>
{
{ form_obj.pwd }} {
{ form_obj.pwd.errors.0 }}
</div>
<div>
<input type="submit" class="btn btn-success" value