表单_内置Filed
Django表单
前面介绍了Django中form表单的重要作用有:
1、生成页面可执行的HTML标签
2、对应户的数据进行校验
3、保留上次输入的内容
注:
1、在实际开发中一般是不需要使用form表单来生成(渲染)前端页面的(前端页面都是单独开发的),最多的只是使用form表单的验证功能来验证前端提交的数据是否合法
2、Django中form表单的验证功能一般是通过Filed来实现的,通过Filed和字段属性来设置数据的类型和属性
常用的Filed
使用Filed是对数据验证的第一步。你期望这个提交上来的数据是什么类型,那么就使用什么类型的Filed
CharField
1、作用:用来接收文本(字符串)
2、默认的Widget:TextInput
3、四个可选参数:
⑴max_length:用来设置字符串的最大长度
⑵min_length:用来设置字符串的最小长度
⑶strip:默认为True,去除输入的前导和尾随空格
⑷empty_value:用来表示'空'的值,默认为空字符串
4、错误信息的键:
⑴max_length:用来设置字符串的最大长度
⑵min_length:用来设置字符串的最小长度
⑶required:这个字段是否是必须的。默认是必须的
⑷error_messages:在某个条件验证失败的时候,给出错误信息
注:
1、Widget:最重要的参数之一,指定渲染Widget时使用的widget类,也就是在form字段在HTML页面中是显示为文本输入框、密码框、单选按钮或多选框等,此参数内容比较多
2、这个参数主要是在form表单在前端页面渲染时起作用的。这里介绍的是只使用验证功能,因此这个参数了解下就好了
EmailField
1、作用:用来接收邮箱,会自动验证邮箱(地址)是否合法
2、默认的Widget:EmailInput
3、错误信息的键:required、invalid
⑴invalid:提交的邮箱地址无效时返回的错误信息
4、两个可选的参数用于验证:max_length、min_length
FloatField
1、作用:验证给定的值是一个浮点数
2、默认的Widget:当Field.localize是False时为NumberInput,否则为TextInput
3、错误信息的键:max_value, min_value, invalid, required
4、接收两个可选的参数用于验证:max_value和min_value,控制允许的值的范围
注:
1、使用这个Filed时,如果在视图函数中验证通过并使用form.cleaned_data.get()方法来获取对应的值后,获取到的直接就是一个浮点型的数据
2、一旦你的表单接收数据并验证通过了,那么就可以从form.cleaned_data字典中读取所有的表单数据
3、在Django中如果没有使用表单组件来获取数据,而是使用"request.POST.get()"方法来获取数据,那么获取到的就是一个字符串型的数字
⑴浏览器和Django服务器之间进行传输的所有数据都是字符串型
IntegerField
1、作用:验证给定值是一个整数。允许前导和尾随空格,类似Python的int()函数
2、默认的Widget:当Field.localize是False时为NumberInput,否则为TextInput
3、错误信息的键:max_value, invalid, required, min_value
4、两个可选参数:max_value和min_value,控制允许的值的范围
URLField
1、作用:证给定值是个有效的URL
2、默认的Widget:URLInput
3、错误信息的键:required, invalid
4、可选参数:max_length和min_length
BooleanField
1、作用:规范化为Python的True或者False
2、默认的Widget:CheckboxInput
3、可用的错误信息键:required
DateField
1、作用:验证给出的值是一个datetime.date,datetime.datetiem或指定日期格式的字符串
2、默认的Widget:DateInput
3、错误信息的键:required,invalid
4、规范化为:datetime.date对象
5、接收一个可选的参数:input_formats,一个格式的列表,用于转换字符串为datetime.date对象,如果没有提供input_formats默认端输入格式为:
⑴['%Y-%m-%d','%m/%d/%Y','%m/%d/%y']
⑵如:['2019-4-10','4/10/2019','4/10/19']
⑶只要输入的日期格式不是列表中定义的格式,那么都会验证不通过
例1:
⑴编辑表单
⑵编辑模板
⑶编辑视图
⑷提交内容:错误
⑸提交内容:正确
DateTimeField
1、作用:验证给出的值时一个datetime.datetime、datetime.date或指定日期格式的字符串
2、默认的Widget:DateTimeInput
3、规范化为:python的datetime.datetime对象
4、错误信息的键:required,invalid
5、接收一个可选参数:input_formats,如果没有提供input_formats默认的输入格式为:
['%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59''%Y-%m-%d %H:%M', # '2006-10-25 14:30''%Y-%m-%d', # '2006-10-25''%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59''%m/%d/%Y %H:%M', # '10/25/2006 14:30''%m/%d/%Y', # '10/25/2006''%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59''%m/%d/%y %H:%M', # '10/25/06 14:30''%m/%d/%y'] # '10/25/06'
例2:
⑴编辑表单
⑵提交内容:正确
TimeField
1、作用:验证给定值是datetime.time或以特定时间格式格式化的字符串
2、默认的Widget:TextInput
3、规范化为:一个Python的datetime.time对象
4、错误信息的键:required, invalid
5、接收一个可选的参数:input_formats,用于尝试将字符串转换为有效的datetime.time对象的格式列表
6、如果没有提供input_formats,默认的输入格式为:
'%H:%M:%S', # '14:30:59'
'%H:%M', # '14:30'
注:
1、Django表单中还有很多的Filed,这里只是介绍了很小的一部分,其他的后面遇到了在学习吧
2、当然,有时候Django中自带的Filed可能不满足我们的需要,因此我们还可以自定义Filed
3、创建自定义Filed字段
⑴如果内置Field类不能满足您的需求,我们可以轻松创建自定义Field类,为此只需创建一个dango.forms.Field子类
⑵它的唯一要求是,必须实现一个clean()方法,而且其__init__()实现required,label,initial,widget,help_text方法
拓展
表单、视图分层
这个主要是我自己感觉视图函数和表单即使分了应用程序APP,但是还是觉得如果都放在一个PY文件中的话,会显得很冗余。所以自己试了下将不同的视图函数和表单放到不同PY文件中
例3:
⑴编辑模型
⑵编辑表单
⑶编辑视图
⑷编辑模板
⑸编辑URL映射
表单_内置Filed相关推荐
- layui表单验证 内置自定义规则 - 使用说明
关于 layui表单的验证规则.调用.自定义规则的使用经验总结: 除了 layui 本身配套的一个验证体系,还支持开发者自定义验证规则(如上表中的[自定义密码验证(代码参考下文)]),并直接嵌入到页面 ...
- 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!
FormBuilder 是一个开源的PHP表单生成器,可以快速生成现代化的form表单.还可以配合开源项目 xaboy/form-create 生成任何 Vue 组件 github | 文档 环境需求 ...
- MySQL学习思维导图(MySQL简介、SQL基础命令、约束、单表查询、多表查询、内置函数、存储过程、视图、事务、索引)
MySQL学习思维导图 内容包括:MySQL简介.SQL基础命令.约束.单表查询.多表查询.内置函数.存储过程.视图.事务.索引 文章目录 MySQL学习思维导图 一.MySQL简介 二.SQL基础命 ...
- 《JavaScript高级程序设计(第四版)》红宝书学习笔记(第五章:基本引用类型,原始值包装类型,单例内置对象)
第五章:基本引用类型 引用值(或者对象)是某个特定引用类型的实例.新对象通过使用new操作符后跟一个构造函数(constructor)来创建. 5.1 Date 这里不对Date进行详细深入,仅基于书 ...
- TC118S单通道内置MOS单通道直流无刷马达驱动IC
一. 特点 TC118S 单通道内置功率 MOS 全桥驱动 웖 驱动前进.后退.停止及刹车功能 웖 内置迟滞热效应过热保护功能 웖 低导通电阻(1.6Ω) 웖 最大连续输出电流可达 1.8A,峰值 2 ...
- element-ui表单_每日UI挑战强加-登录表单(分步教程)
element-ui表单 A step by step journey to create a good design from the daily UI challenge 一步步走,从日常的UI挑 ...
- 获取form表单_【第1535期】前端 Form 的表单的一个通用解决方案
前言 今日早读文章由阿里@布达投稿分享. @布达,Alibaba Fusion项目组的.花名潕量.主要专注在设计系统.组件.可视化搭建这个领域 正文从这开始-- Fusion Next - Form ...
- 查看ie保存的表单_解决浏览器保存密码自动填充问题
解决浏览器保存密码自动填充问题 问题描述 话说有一天,我如往常一样打开我的开发网站进行登录操作.浏览器很平常的在我们进行登录操作之后询问我是否需要记住密码,懒惰如我点击了记住密码.一切都很正常的进行着 ...
- angular js创建表单_如何优雅的使用 Angular 表单验证
随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...
最新文章
- 我在兰亭这三年完结篇之离开
- KS004 基于SSH通讯录系统设计与实现
- 处理xmpp 离线信息,
- 如何将单选题多选题分开_别再说不会分析多选题了!这6种方法解决你的烦恼!...
- redis启动后 允许访问_解决Redis开启远程访问及密码问题
- VTK:PolyData之ConnectivityFilter_SpecifiedRegion
- 【Python】选择Python2还是Python3?
- 解决:-source 1.6 中不支持 diamond 运算符 [ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
- Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
- [FFmpeg] RGBA 和 YUV 存储方式
- 当当网回应李国庆“夺权”;小米:为常程不当言论道歉;Rust 1.43.0 发布 | 极客头条...
- Linux安装及升级jdk1.8
- CSDN账号绑定github(极简办法)
- 计算机第二章测试题及答案,计算机组成原理第二章练习题及答案
- 26 图的邻接矩阵:深度优先遍历
- C语言 矩阵相似度
- 制作u盘winpe启动盘_绿色、无捆绑的优启通U盘启动盘制作工具
- 一朵花的组成结构图_请问一朵完整的花由哪几部分组成
- yana--Flutter一些学习
- 广州app开发:移动app排行榜出炉