django 使用表单 自定义表单 内置表单 验证表单

常见的表单元素

 表单标签——<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——初始化数据

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值