Django入门教程

前言

第一章: django快速入门

第二章: django MTV架构

第三章: django视图

第四章: django模板

第五章: django模型

第六章: django后台管理系统

第七章: 项目实战-简易的博客系统

第八章:django表单

第九章:django用户认证系统

第十章:django中的会话

第十一章:django安全

第十二章:django性能优化

第十三章:django实用工具

首页 > Django入门教程 > 第八章:django表单 > 8.3节: django表单的字段类型

8.3节: django表单的字段类型

薯条老师 2020-09-24 07:00:49 232388 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

8.3.1 django表单的字段类型

django内置的表单系统会对表单字段自动进行验证和标准化,在对字段值进行验证的过程中,如果字段值不符合字段选项的定义,例如字段长度超过了max_length定义的长度,就会在页面中弹出错误消息提示。对字段值进行标准化处理,即把字段值转换为标准的Python对象,例如将CharField的输入标准化为字符串类型,将DateField的输入标准化为日期类型。

 此外,django中的表单字段都会绑定一个默认的widget,例如CharField默认的widget是一个TextInput,表示一个文本输入框。以下为django表单中的主要字段类型:

1.BooleanField

(1) 默认的widget是CheckboxInput,对应于HTML表单中的checkbox

(2) 标准化后的数据类型为布尔类型

(3) 空值为False

字段选项

(1) required:布尔类型,表示是否必填,默认为True

数据验证

字段选项required为True时,如果字段值为空,会提示错误信息。

2.CharField

(1) 默认的widget是TextInput,对应于HTML表单中的文本输入框

(2) 标准化后的数据类型为字符串类型

(3) 空值为empty_value,默认为空字符串

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) strip:布尔类型,如果选项值为True,django表单会删除字段值首尾的空白字符

(3) max_length:指定字段的最大长度

(4) min_length:指定字段的最小长度

数据验证:

字段选项required为True时,如果字段值为empty_value时,会提示错误信息,当字段长度不在max_length或min_length范围内时,也会提示错误信息。

3.IntegerField

(1) 默认的widget是NumberInput,字段选项localize为True时为TextInput

(2) 标准化后的数据类型为整型

(3) 空值为None

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) max_value:指定字段的最大值

(3) min_value:指定字段的最小值

数据验证:

字段选项required为True时,如果字段值不在max_value或min_value的范围内时,会弹出错误提示信息。

4.FloatField

(1) 默认的widget是NumberInput,字段选项localize为True时为TextInput

(2) 标准化后的数据类型为python中的float类型

(3) 空值为None

字段选项

(1) required:布尔类型,表示是否必填,默认为True

(2) max_value:指定字段的最大值

(3) min_value:指定字段的最小值

数据验证:

字段选项required为True时,如果字段值不在max_value或min_value的范围内时,会弹出错误提示信息。

5.DecimalField

(1) 默认的widget是NumberInput,字段选项localize为True时为TextInput

(2) 标准化后的数据类型为python的decimal类型

(3) 空值为None

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) max_value:指定字段的最大值

(3) min_value:指定字段的最小值

(4) max_digits:指定字段中的数字最大位数

(5) decimal_places:指定字段中的小数位数

数据验证

字段选项required为True时,如果字段值不在max_value,min_value,max_digits,decimal_places选项的范围内时,会弹出错误信息。

6.DateTimeField

(1) 默认的widget是DateTimeInput,对应于HTML表单中的日期时间控件

(2) 标准化后的数据类型为python中的datetime.datetime对象

(3) 空值为None

字段选项

(1) input_formats:用来指定字段值的日期时间格式

数据验证:

字段选项required为True时,如果字段值为空或不符合字段的默认日期时间格式时,会提示错误信息。

7.ChoiceField

(1) 默认的widget是select,对应于HTML表单中的下拉框

(2) 标准化后的数据类型为python中的字符串对象

(3) 空值为''

字段选项:

(1) choices:是一个二维元组,用来定义下拉框中的选项,用法同模型中的choices

数据验证:

字段选项required为True时,如果字段值不存在与下拉框中时,会弹出错误信息

8.EmailField

(1) 默认的widget是EmailInput,对应于HTML表单中的文本输入框

(2) 标准化后的数据类型为python中的字符串对象

(3) 空值为''

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) max_length:指定字段的最大长度

(3) min_length:指定字段的最小长度

数据验证:

字段选项required为True时,出现下面几种情况之一都会弹出错误消息提示:

(1) 字段值为空

(2) 邮件地址无效

(3) 字段长度不在min_length或max_length选项的范围内

9.FileField

(1) 默认的widget是ClearableFileInput

(2) 标准化后的数据类型为django中的UploadFile对象

(3) 空值为None

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) allow_empty_file:布尔类型,表示是否允许上传空文件

(3) max_length:指定文件的最大长度

数据验证:

在不允许上传空文件,且文件长度大于max_length时会弹出错误消息提示。

10.RegexField

(1) 默认的widget是TextInput

(2) 标准化后的数据类型为字符串类型

(3) 空值为''

字段选项:

(1) required:布尔类型,表示是否必填,默认为True

(2) regex:用来指定一个正则表达式

(3) strip:布尔类型,如果选项值为True,在对字段值进行正则匹配前会删除首尾的空白字符

数据验证:

在required为True时,如果用户的输入如果与regex指定的正则表达式不匹配,会弹出错误信息

8.3.2 字段类型的核心参数

字段参数名

描述

required

在默认情况下,django表单字段的required参数为True,表示必填,在字段值为None或空字符串时,会抛出ValidationError的错误异常。

 

label

用来为表单字段指定一个人类可读的标签,django在进行模板渲染时会自动添加一个HTML label标签。

 

initial

用来为用户的输入框指定一个初始值。

 

widget

用来为表单字段指定一个表单组件

help_text

用来为表单字段指定描述性的文本信息

error_messages

用来为表单字段指定错误提示信息

validators

用来为表单字段指定一个验证器

localize

布尔类型,值为True时会将输入进行本地化处理

disabled

布尔类型,表示是否对用户的输入进行禁用

8.3.3 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:


欢迎 发表评论: