Django 之Form
具体可参考: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的更多相关文章
- Django之Form组件
Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功能: 生成HTML标签 验证用户 ...
- Django models Form model_form 关系及区别
Django models Form model_form
- 【Django】--Form组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 例子: 1.创建Form类 from djan ...
- Django基础——Form&Ajax篇
一 Form 在实际的生产环境中,登录和注册时用户提交的数据浏览器端都会使用JavaScript来进行验证(比如验证输入是否为空以及输入是否合法),但是浏览器可能会禁用JavaScirpt,同时也有人 ...
- Python之路【第二十一篇】:Django之Form组件
Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1. ...
- 第十一篇:web之Django之Form组件
Django之Form组件 Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功 ...
- 69、django之Form组件
本篇导航: 小试牛刀 Form类 常用选择插件 自定义验证规则 初始化数据 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次 ...
- Django的Form(二)
上一篇已经简单介绍了Django的Form,现在开始进阶操作了 ..... 创建Form类的时候,主要涉及到Form字段和Form的插件,字段用于做form验证,插件用来生成HTML DjiangoF ...
- Django的Form
Django的Form有两个基本用途: 1.用于生成html的Form表单 2.用于后台做表单验证 #!/usr/bin/env python # -*- coding:utf-8 -*- impor ...
- python Django之Form组件
python Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试 ...
随机推荐
- 学习笔记之PostgreSQL / pgAdmin / Psycopg / PostGIS
PostgreSQL: The world's most advanced open source database https://www.postgresql.org/ POSTGRESQL: T ...
- dos命令及github介绍
dos命令:(不区分大小写)(尽量不要用汉字) 1.打开终端的快捷方式: window+r 输入cmd 或点击 开始栏 输入cmd 2.终端的目录:c盘默认 user/administator: 想在 ...
- 在CentOS6的上安装Windows2012R2的KVM虚拟机
在CentOS6的上安装Windows2012R2的KVM虚拟机 1:上传cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso下载驱 ...
- [UE4]基于物理的材质
基于物理的材质可以产生更准确并且通常更加自然的外观,在所有照明环境中都可以同样完美地工作! 官方说明
- IBM MQ 中 amqsput : command not found的解决办法
MQ操作队列的命令有如下三条:命令功能1.amqsput 将消息放入队列中, 程序把之后的每一行标准输入作为一条独立的消息,读到 EOF 或空行时退出.注意,UNIX 上的 EOF 为 Ctrl+ ...
- vue 数据绑定 绑定属性 循环渲染数据
<template> <!-- vue的模板里面 所有的内容要被一个根节点包含起来 --> <div id="app"> <h2>{ ...
- vue808
自定义键盘信息: Vue.directive('on').keyCodes.ctrl=17; Vue.directive('on').keyCodes.myenter=13; 数据深度监听 ...
- nginx 端口转发配置
nginx.conf #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log not ...
- 用户禁止cookie后,如何继续使用session
(1)如果用户禁止cookie,服务器仍会将sessionId以cookie的方式发送给浏览器,但是,浏览器不再保存这个cookie(即sessionId)了. (2)如果想继续使用session,需 ...
- MySQL函数大全及用法示例
1.字符串函数ascii(str) 返回字符串str的第一个字符的ascii值(str是空串时返回0) mysql> select ascii('2'); -> 50 mysq ...