本文共 8442 字,大约阅读时间需要 28 分钟。
views:
from django.shortcuts import render, HttpResponsefrom django import forms# 先定义一个Form类class LoginForm(forms.Form): name = forms.CharField( label='用户名', initial='陌生人', strip=True, error_messages={ 'required': '用户名不能为空', } ) # 密码框 password = forms.CharField( label='密码', min_length=6, widget=forms.PasswordInput(render_value=True), error_messages={ 'required': '密码不能为空', 'min_length': '密码不能小于6位', } ) # 单选框 gender = forms.ChoiceField( choices=[(1, '男'), (2, '女'), (3, '保密')], label='性别', initial=3, widget=forms.RadioSelect(), error_messages={ 'required': '请选择性别' } ) # 下拉单选 hobby = forms.ChoiceField( label='爱好', widget=forms.Select(), choices=((1, '篮球'), (2, '足球'), (3, '乒乓球')), initial=2, ) # 多选 hobby2 = forms.MultipleChoiceField( label='爱好2', choices=((1, '摩托车'), (2, '汽车'), (3, '游艇')), initial=[1, 3], widget=forms.SelectMultiple() ) # 单选checkbox keep = forms.ChoiceField( label='是否记住密码', initial='checked', widget=forms.CheckboxInput() ) # 多选checkbox city = forms.ChoiceField( label='居住城市', choices=[(1, '北京'), (2, '天津'), (3, '上海'), (4, '武汉')], initial=4, widget=forms.Select() )# 写一个函数视图def login(request): form_obj = LoginForm() if request.method == 'POST': form_obj = LoginForm(request.POST) if form_obj.is_valid(): pass return render(request, 'app/login.html', { 'form_obj': form_obj})
templates:
Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'} validators=[], 自定义验证规则 localize=False, 是否支持本地化 disabled=False, 是否可以编辑 label_suffix=None Label内容后缀CharField(Field) max_length=None, 最大长度 min_length=None, 最小长度 strip=True 是否移除用户输入空白 IntegerField(Field) max_value=None, 最大值 min_value=None, 最小值DecimalField(IntegerField) max_value=None, 最大值 min_value=None, 最小值 max_digits=None, 总长度 decimal_places=None, 小数位长度 DateField(BaseTemporalField) 格式:2015-09-01TimeField(BaseTemporalField) 格式:11:12DateTimeField(BaseTemporalField)格式:2015-09-01 11:12 RegexField(CharField) regex, 自定制正则表达式 max_length=None, 最大长度 min_length=None, 最小长度 error_message=None, 忽略,错误信息使用 error_messages={'invalid': '...'}ChoiceField(Field) choices=(), 选项,如:choices = ((0,'上海'),(1,'北京'),) required=True, 是否必填 widget=None, 插件,