toc
django Form和MoelForm组件
1.Form组件
1.1 form组件作用
- 生成页面可用的html标签
- 对用户提交的数据进行校验
- 保留上次输入的内容
1.2 使用form组件步骤
1.2.1 第一步、在视图文件中创建form类
from django.shortcuts import render,redirect,reverse,HttpResponse
#导入forms
from django import forms
# Create your views here.
class LoginForm(forms.Form):
username = forms.CharField(
label='用户名:',
required=True, #等于true是表示用户名不能为空
max_length=8, #用户名最大不能超过8个字符
min_length=5, #用户名最小不能少于5个字符
initial='我是初始用户名', #设置初始用户名
#widget是插件,就是我们想要在页面上生成页面效果时需要用到的,这里的c1是html文件中username输入框定义的css样式的class类值,attrs是用来指定css样式
widget=forms.TextInput(attrs={'class':'c1','placeholder':'请输入用户名'}),
# 自定义报错信息,如超过用户名最大长度
error_messages={
'required':'不能为空',
'max_length':'用户名太长',
'min_length':'用户名太短',
},
)
password = forms.CharField(
required=True,
label='密码:',
widget=forms.PasswordInput(attrs={'class':'c1','placeholder':'请输入密码'},render_value=True), #render_value=True表示让上一次输入的密码在刷新浏览器的时候保留
)
sex = forms.ChoiceField(
choices=[(1,'男'),(2,'女')],
widget=forms.RadioSelect(attrs={'xx':'none'}),
)
hobby = forms.MultipleChoiceField(
choices=[(1,'唱'),(2,'跳'),(3,'rap'),(4,'篮球')],
widget=forms.CheckboxSelectMultiple,
)
birthday = forms.CharField(
widget=forms.TextInput(attrs={'tyoe':'date'})
)