1.form组件的主要功能

1.生成页面可用的HTML标签
2.对用户提交的数据进行校验
3.保留上次输入内容

2.页面显示的步骤

1.views.py中导入forms模块:from django import froms
2.定义继承自forms.Form的类,类中定义字段(和models中的写法相同)
3.视图函数中创建该类的对象
4.如果是get请求,向页面中渲染form对象。

3.简单使用form组件实现的例子

class Regform(forms.Form):  # 查看所有字段(forms->fields->查看__all__)
    """
    CharField对应input标签,users、pwd是input标签中的name的值,label对应label标签,widget的值对应input标签的类型
    ChoiceField对应select标签,choices中的选项是option的值
    """
    users = forms.CharField(label="用户名", widget=forms.TextInput)
    pwd = forms.CharField(label="密码", widget=forms.PasswordInput)
    choice = forms.ChoiceField(label="性别", choices=((1, "alex"), (2, "egon")))

def form_test(req):
    form_obj = Regform()  # 实例化Regform对象
    if req.method == "POST":
        form_obj = Regform(data=req.POST)
        if form_obj.is_valid():  # is_valid()是遍历所有提交过来的字段的值是否合法
            if req.POST.get("password") != req.POST.get("re_password"):
                return render(req, "form_test.html", {"form_obj": form_obj})  # 此处保留在前端界面上的数据
            else:
                return redirect("/index/")
    return render(req, "form_test.html", {"form_obj": form_obj})  # 将form_obj渲染给前端界面
views.py

相关文章: