- 什么是django表单:
- django中的表单不是html中的那个表单,这里是指django有一个组件名叫表单
- 它可以通过配置去验证数据的合法性
- 同样也可以通过配置生成HTML代码.
- 使用表单:
- 创建一个`forms.py`的文件,放在指定的app当中,然后在里面写表单.
- 表单是通过类实现的,继承自`forms.Form`,然后在里面定义要验证的字段.
form类表单的name必须对应HTML表单的name值
from django import forms class LoginForm(forms.Form):
# username, password对应HTML表单的name值,否则匹配不到 username = forms.CharField(label="用户名", max_length=20, min_length=5) password = forms.CharField(label="密码", max_length=20, min_length=5)
form组件取HTML表单传来的值:
form = LoginForm(request.POST)
if form.is_valid: # 必须通过is_valid验证,并且值符合fLoginForm要求时,才能取出值
data = form.cleaned_data
class Register(View): """注册""" def get(self, request): form = LoginForm() return render(request, "register.html", locals()) def post(self, request): forms = LoginForm(request.POST) # HTML代码 可以返回生成页面 print forms.is_bound # 验证是否有数据包括''空字符串 if forms.is_valid(): # 验证数要求据是否符合form的要求,返回bool valid有效的 # forms.cleaned_data 必须在is_valid下q且为True时使用 data = forms.cleaned_data # dict类型 cleaned_data数据清洗 username = data['username'] password = data['password'] return render(request, 'register.html', locals())