form组件
form
- 有input让用户输入
- 提交数据
- form组件
form组件
- 提供input框
- 能对数据做校验
- 返回错误提示
定义:
from django import forms
class RegForm(forms.Form):
username = forms.CharField(label='用户名')
password = forms.CharField(label='密码')
使用:
函数
def register2(request):
if request.method == 'POST':
form_obj = RegForm(request.POST)
if form_obj.is_valid(): # 校验数据
# 插入数据库
print(form_obj.cleaned_data)
print(request.POST)
return HttpResponse('注册成功')
else:
form_obj = RegForm()
return render(request, 'register2.html', {'form_obj': form_obj})
常用字段:
CharField # 文本输入框
ChoiceField # 单选框
MultipleChoiceField # 多选框
模板
模板
{{ form_obj.as_p }} # 展示所有的字段
{{ form_obj.username }} # 生成input框
{{ form_obj.username.label }} # 中文提示
{{ form_obj.username.id_for_label }} # input框的id
{{ form_obj.username.errors }} # 该字段的所有的错误
{{ form_obj.username.errors.0 }} # 该字段的第一个的错误
{{ form_obj.errors }} # 该form表单中所有的错误
字段参数:
required=True, 是否必填
widget=None, HTML插件
label=None, 用于生成Label标签或显示内容
initial=None, 初始值
error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'}
disabled=False, 是否可以编辑
validators=[], 自定义验证规则

浙公网安备 33010602011771号