具体可参考:http://www.liujiangblog.com/course/django/153

https://www.cnblogs.com/liuguniang/p/7141837.html

https://www.cnblogs.com/liwenzhou/p/8747872.html

一,Form字段:

1)验证

2)生成HTML(保留上次输入内容)

3)初始化默认值

Form 重点字段:

------ChoiceField *****8

------MultipleChoiceField

------CharField

------IntegerField

------DecimalField

------DateField

------DateTimeField

------EmailField

------GenericIPAdressField--

------FileField

------RegexField

三,具体用法:

1)CharField的参数

class TestForm(forms.Form):
user = fields.CharField(
required=True, # 是否必填
max_length=12, # 最大长度
min_length=3, # 最小长度
error_messages={ # 错误提示
'required':''
},
# widget = widgets.Textarea, # 定制html插件
# widget=widgets.Select,
label="用户名",
initial='请输入用户名', # 默认值
show_hidden_initial=False, # 是否在当前插件在家一个隐藏的且具有默认值的插件(可用于检验两次输入是否一致)
validators=[], # 自定制验证规则(是否是手机号)
localize=False, # 是否支持本地化
disabled=True, # 是否可以编辑
label_suffix=":", )
age = fields.IntegerField(label="年龄",)
email = fields.EmailField(label="邮箱",)
当widget = widgets.Textarea 展示效果如下

当widget=widgets.Select展示效果如下

2)

简单了解
1){{ obj.as_p }}
2)
<ul>
{{ obj.as_ul }}
</ul>
3)
<table>
{{ obj.as_table}}
</table>

3)IntegerField类型

age = fields.IntegerField(
label="年龄",
max_value=12,
min_value=5,
error_messages={
'max_value' : "太大了"
}
)

4)DecimalField类型

	weight = fields.DecimalField(
label = "体重",
max_value=30, # 最大值
min_value=10, # 最小值
max_digits=5, #总长度
decimal_places=3, #小数位的长度 )

5)RegexField正则

6)EmailField

7)URLField

8)FileField

img = fields.FileField(label="上传文件")

.html中

novalidate enctype="multipart/form-data"

9)ChoiceField

	city = fields.ChoiceField(
label="城市",
choices=[(1,"上海"),(2,"北京"),(3,"天津"),],
initial = 2, )

10)MultipleChoiceField

hobby = fields.MultipleChoiceField(
label="爱好",
choices=[(1, "篮球"), (2, "足球"), (3, "乒乓球"), ],
initial=[1, 2], # 多选是列表
)

11)TypeChoiceField 转换类型的,打印输出的chocices 1不是字符串类型而是int类型

city = fields.TypedChoiceField(
coerce=lambda x: int(x),#转换类型
label="城市",
choices=[(1, "上海"), (2, "北京"), (3, "天津"), ],
initial=2, # 单选是单值 )

二.Form 之 插件:每一个fields字段都是一个正则表达式+默认的插件组成的,

1)更改默认插件:

widget = widgets.TextInput(attrs={'n':123}), #加自定义属性

2)如果想把

txt = "<input type = 'text/>" 标签类的文本展示到页面上,需要在view传值的页面加上
from  django.utils.safestring import mark_safe

txt =mark_safe("<input type = 'text/>")

3)Django 的内置插件: 单选的两种写法如下: select

只有select 有choice input什么的没有
xdb = fields.CharField(
widget=widgets.Select(choices=[(1,"11"),(2,"22"),])
) 也可以直接用ChoiceField
xdb = fields.ChoiceField( 
choices=[(1,"11"),(2,"22"),]
)

多选的写法如下:

xdb = fileds.MultipleChoiceField(
choices = [(1,"111"),(2,"222")]
widget = widgets.SelectMultiple(attrs = {"class":"cl"})
)

4)checkbox(单选的)

	xdb = fields.CharField(
# widget=widgets.Select(choices=[(1,"11"),(2,"22"),])
widget=widgets.CheckboxInput()
)

5)checkbox(多选的)

	xdb = fields.MultipleChoiceField(
initial=[2,],
choices = [(1, "篮球"), (2, "足球"), (3, "乒乓球"), ],
# widget=widgets.Select(choices=[(1,"11"),(2,"22"),])
widget=widgets.CheckboxSelectMultiple()
)

6)radio

	xdb = fields.ChoiceField(
initial=[2,],
choices = [(1, "篮球"), (2, "足球"), (3, "乒乓球"), ],
# widget=widgets.Select(choices=[(1,"11"),(2,"22"),])
widget=widgets.RadioSelect()
)

三.特殊的单选或者多选时,数据源是否能实时更新????/

https://www.cnblogs.com/

Django 之Form的更多相关文章

  1. Django之Form组件

    Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户 ...

  2. Django models Form model_form 关系及区别

    Django models Form model_form

  3. 【Django】--Form组件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 例子: 1.创建Form类 from djan ...

  4. Django基础——Form&Ajax篇

    一 Form 在实际的生产环境中,登录和注册时用户提交的数据浏览器端都会使用JavaScript来进行验证(比如验证输入是否为空以及输入是否合法),但是浏览器可能会禁用JavaScirpt,同时也有人 ...

  5. Python之路【第二十一篇】:Django之Form组件

    Django之Form组件   Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1. ...

  6. 第十一篇:web之Django之Form组件

    Django之Form组件   Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功 ...

  7. 69、django之Form组件

    本篇导航: 小试牛刀 Form类 常用选择插件 自定义验证规则 初始化数据 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次 ...

  8. Django的Form(二)

    上一篇已经简单介绍了Django的Form,现在开始进阶操作了 ..... 创建Form类的时候,主要涉及到Form字段和Form的插件,字段用于做form验证,插件用来生成HTML DjiangoF ...

  9. Django的Form

    Django的Form有两个基本用途: 1.用于生成html的Form表单 2.用于后台做表单验证 #!/usr/bin/env python # -*- coding:utf-8 -*- impor ...

  10. python Django之Form组件

    python Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试 ...

随机推荐

  1. blog决定不用二级域名,改为二级目录

    看了一篇文章,受益匪浅,到底是用二级域名还是二级目录?已转载到得闲佬设计. 分析了一下得闲佬设计的因素,因为得闲佬设计是小站,流量很小,而且更新文章频率也不大,没必要把流量分出去做一个独立的站点 所以 ...

  2. [UE4]复制引起的重复对象

    一.在角色的BeginPlay事件中,在角色正前方1米到2米处生成一立方体. 二.开启2个玩家,第一个创建是服务器端,第二个窗口是客户端.可以看到:服务器端窗口创建了2个灰色的立方体,客户端却创建了4 ...

  3. Win10开发环境配置

    基本环境变量配置:最近工作电脑固态硬盘损坏了,导致不得不重新装机,从前配置的环境需要重新配置,在此标记. Java环境配置: 添加变量 JAVA_HOME=D:\Program Files\Java\ ...

  4. C#语言基础知识

    一. string i_str = "321"; string 型,强制转换成 int 型 int i_int1 = int.parse(i_str); string 型,强制转换 ...

  5. Java 7-Java 循环结构 - for, while 及 do…while

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  6. nginx完全关闭log

    nginx.conf中要在http一节里面添加 access_log off; error_log off;

  7. Cmder - 在右键菜单添加"Cmder Here"

    使用命令行或终端工具的时候都有一个让我们觉得麻烦的问题,就是需要cd很多目录达到目标位置.在可视化操作系统下面我们一般都是已经处在目标目录了,这时需要执行某些命令如: python test.py 现 ...

  8. 使用sqoop从mysql导入数据到hive

      目录 前言 一.使用的导入命令 二.遇到的问题及解决 1. 用文本字段进行分区的问题 2. Hadoop历史服务器Hadoop JobHistory没开启的问题 3. 连接元数据存储数据库报错 4 ...

  9. wordpress写文章添加gif图片变成静态图片的解决办法

    添加文章时gif只能静态,记得在添加时选择完整尺寸,不要压缩即可

  10. ROS进阶学习笔记(10)- 搭建自己的Turtlebot(5) - Interactive Makers

    用interactive_makers控制Turtlebot移动 interactive_makers 是Willow Garage公司开发的一个虚拟控制工具,可通过鼠标在虚拟环境中的操作,完成实际机 ...