常见的表单元素
表单标签——<form>
单行文本框/多行文本框
选择(单选、多选、下拉选择)
隐藏表单域
表单按钮
文件上传框
Flask中的表单使用
表单使用的步骤
第一步:创建表单类
第二步:添加到视图
第三步:渲染到模板
第四步:在视图中处理表单数据
字段的常用参数:
required——是否为必填,默认为必填
label label —— 标签(如:输入框前的文字描述)
initial——初始化数据
help_text——帮助文字
error_messages——覆盖字段引发异常后的错误显示
disabled——禁用表单,界面上不可操作
has_changed()——值是否发生了改变
widget——定制界面显示方式(如:文本框、选择框)
class LoginForm(forms.Form):
""" 登录表单 """
username = forms.CharField(label='用户名',
max_length=100,
required=False,
help_text='使用帮助',
initial='admin')
Django内置的字段
文本/字符串:
CharField——字符串输入
EmailField——邮件地址输入
URLField URL —— 地址输入
UUIDField uuid —— 字符串输入
数值(整数,小数):
FloatField——浮点数输入
FloatField——浮点数输入
DecimalField——小数输入(更精确)
选择(单选/多选):
ChoiceField——单选
MultipleChoiceField——多选
TypedChoiceField——高级选择(支持结果转换类型)
日期/时间:
DateField——日期选择
DateTimeField——日期时间选择
DurationField timedelta ——时间片段
TimeField——时间选择
文件/文件上传:
FileField——文件
FilePathField——文件路径
ImageField——图片
布尔:
BooleanField ——True\False
NullBooleanField--- None\True\False
正则表达式:
RegexField——正则输入
内置表单字段:
class UserEditForm(forms.Form):
""" 用户的信息维护 """
SEX_CHOICES = (
(1, '男生'),
(0, '女生'),
)
username = forms.CharField(label='用户名',
max_length=100,
required=False,
help_text='使用帮助',
initial='admin')
email = forms.EmailField(label='电子邮箱', max_length=200)
age = forms.IntegerField(label='年龄')
sex = forms.ChoiceField(label='性别', choices=SEX_CHOICES)
birth_date = forms.DateField(label='生日')
avatar = forms.ImageField(label='用户头像')
在视图中获取表单值
GET请求
request.GET.get('name', None)
POST请求
request.POST.get('name', None)
文件对象
request.FILES.get('name', None)
class UserRegForm(forms.Form):
""" 用户注册表单 """
username = forms.EmailField(label='用户名', max_length=200, min_length=5)
password = forms.CharField(label='密码', max_length=200, min_length=6)
nickname = forms.CharField(label='用户昵称', max_length=32, required=False)
birth_date = forms.DateField(label='用户的生日', required=False)
post请求发数据给后端 action的点是当前的页面
表单类的可选参数
data——表单数据
initial——初始化数据
files——文件对象
Form对象的方法
as_p() / as_ul()/as_table () ——渲染表单
is_valid()——表单是否已经通过验证
clean() ——调用表单的验证/ 自定义的验证
Form对象的属性
is_bound——是否已经绑定数据
cleaned_data——访问表单验证后的数据
errors——表单验证后的错误信息
fields——表单中的字段
initial——初始化数据