Python学习---DjangoForm的总结大全
DjangoForm基础知识总结
1、Form是什么东西?
用于验证用户请求数据合法性的一个组件
2、 Django的Form的实现步骤:
a. 创建一个验证用户请求的模板
from django import forms
class MyForm(forms.Form):
user = forms.CharField(...) # input type='text'
email = forms.EmailField(...) # input type='email'
pwd = forms.PaswordField(...) # input type='password'
obj = MyForm();
obj.is_valid(); ------>执行上面的每一个规则,返回一个结果
b.创建模板的3个重要元素:
类 :模版,到底验证几个
字段:用于验证用户某个字段
插件:user = forms.CharField(..,widget=Input框),告诉Django,我生成什么样式的标签[自己指定]
注意:Django默认的样式是 widget = TextInput
PS: 类型转换【前台提交的内容都是字符串,如果我们使用了IntegerField,此时数据类型就是数字类型啦】
-----------
class DetailForm(DForms.Form):
user1 = fields.CharField()
user2 = fields.CharField(widget=widgets.TextInput(attrs={'class': 'c1','placeholder': '用户名'}))
user3 = fields.ChoiceField(choices=[(1, 'SH'), (2, 'BJ'), ])
user5 = fields.CharField(widget=widgets.Select(choices=[(1, 'SH'), (2, 'BJ'), ]))
字段(默认插件):
CharField
IntegerField
IP,Email,URL,Slug
ChoiceField(简写) ==> CharField+插件[和简写的等价]
MultipleChoiceField
RegexField
参数:
required=True, 是否必填
initial="hello world",
validators=[RegexValidator(r'^[0-9]+$', '11111',code='f1'), RegexValidator(r'^159[0-9]+$', '2222',code='f2')],
error_messages={'required': '不能为空','f1': 'geshicuowu','f2': 'kajdlfkjasldf','max_length': 'taichangla'},
choices=[(),(),()]
# 指定插件
widget =
TextInput(Input)
NumberInput(TextInput)
EmailInput(TextInput)
URLInput(TextInput)
PasswordInput(TextInput)
HiddenInput(TextInput)
Textarea(Widget)
DateInput(DateTimeBaseInput)
DateTimeInput(DateTimeBaseInput)
TimeInput(DateTimeBaseInput)
CheckboxInput
Select
NullBooleanSelect
SelectMultiple
RadioSelect
CheckboxSelectMultiple
FileInput
ClearableFileInput
MultipleHiddenInput
SplitDateTimeWidget
SplitHiddenDateTimeWidget
SelectDateWidget
插件用法:
user1 = fields.CharField()
user2 = fields.CharField(widget=widgets.TextInput)
user3 = fields.CharField(widget=widgets.TextInput(attrs={}))
特殊的:
单值:
user4 = fields.CharField(widget=widgets.Select(attrs={},choices=[(),(),()]))
user4 = fields.ChoiceField(choices=[(),(),()],widget=widgets.Select)
# 多值
user5 = fields.CharField(widget=widgets.MutipleSelect(attrs={},choices=[(),(),()]))
# "[1,2,3]"
user5 = fields.MultipleChoiceField(widget=widgets.MutipleSelect(attrs={},choices=[(),(),()]))
# [1,2,3,4]
b. 获取用户请求,进行验证:
- is_valid()
- clean()
- errors
c. 表单提交
Form提交:
errors.字段.0
Ajax提交:
errors.as_json()
errors.as_data()
{‘user’: [Django对象(),]}
DjangoForm应用总结及常用插件
DjangoForm应用总结
1、form表单验证的组件
2、类、字段、插件
3、ChoiceField
4、默认值(新URL编辑)
5、重新构造方法来实现动态获取数据库中的数据
常用插件
# 单radio,值为字符串
# user = fields.CharField(
# initial=2,
# widget=widgets.RadioSelect(choices=((1,'上海'),(2,'北京'),))
# ) # 单radio,值为字符串
# user = fields.ChoiceField(
# choices=((1, '上海'), (2, '北京'),),
# initial=2,
# widget=widgets.RadioSelect
# ) # 单select,值为字符串
# user = fields.CharField(
# initial=2,
# widget=widgets.Select(choices=((1,'上海'),(2,'北京'),))
# ) # 单select,值为字符串
# user = fields.ChoiceField(
# choices=((1, '上海'), (2, '北京'),),
# initial=2,
# widget=widgets.Select
# ) # 多选select,值为列表
# user = fields.MultipleChoiceField(
# choices=((1,'上海'),(2,'北京'),),
# initial=[1,],
# widget=widgets.SelectMultiple
# ) # 单checkbox
# user = fields.CharField(
# widget=widgets.CheckboxInput()
# ) # 多选checkbox,值为列表
# user = fields.MultipleChoiceField(
# initial=[2, ],
# choices=((1, '上海'), (2, '北京'),),
# widget=widgets.CheckboxSelectMultiple
# )
注意区别input框的EmailField:

Python学习---DjangoForm的总结大全的更多相关文章
- python学习第六天运算符总结大全
python学习第六天运算符总结大全,玖乐网络(www.96net.com.cn)列出下面详细 1,算术运算符 + 加 - 减 *乘 / 除 % 求模 ** 乘方 // 取整除 - 返回商的整数部分 ...
- Python学习---DjangoForm的学习
DjangoForm之创建工程 Form是什么东西: 用于验证用户请求数据合法性的一个组件 普通的Form提交的弊端: 1.用户提交数据的验证 2.前台需要进行错误信息的提示 3.需要保留上次用户输入 ...
- Python学习-django-Form组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 +? 1 2 3 ...
- python学习: 如何循序渐进学习Python语言
大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...
- Python学习教程(一)自学资源分享
Python 可以用来做什么? 在我看来,基本上可以不负责任地认为,Python 可以做任何事情.无论是从入门级选手到专业级选手都在做的爬虫,还是Web 程序开发.桌面程序开发还是科学计算.图像处理, ...
- 精心整理的一些 Python 学习资料
今天花了些时间给大家精心整理一份 Python 学习资料.我觉得不错的资料我都整理进来了,如果你是学习python的,我觉得这一份资料对你应该有用. 1.知乎上超过 10k 的python相关回答 Y ...
- Python学习教程:Pandas中第二好用的函数
从网上看到一篇好的文章是关于如何学习python数据分析的迫不及待想要分享给大家,大家也可以点链接看原博客.希望对大家的学习有帮助. 本次的Python学习教程是关于Python数据分析实战基础相关内 ...
- 第1章 Python学习环境构建目录
第1章 引子 第1.1节 学习环境搭建 第1.2节 Python学习环境的使用 第2章 Python编程基础知识 第2.1节 简单的Python数据类型.变量赋值及输入输出 第2.2节 Python的 ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
随机推荐
- django notes 七:Using Forms
form 也没什么可说的,我只给一个例子大家就懂了 form model from django import forms class UserForm(forms.Form): username = ...
- ftp&nginx搭建图片服务器
下面使用ftp+nginx搭建一个简单的服务器 ftp用于文件的传输 nginx提供http服务 nginx服务器的安装和配置可以参照之前的教程:nginx安装及其配置详细教程 下面介绍ftp服务的安 ...
- python-五个面试题
问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...
- 重温js基础部分
临近面试,因此打算回过头来巩固一下js的一些基础部分,同时也是为了记录自己的一些比较薄弱的点. 1.typeof操作符 typeof返回一个基本数据类型,包括number,string,boolean ...
- 【深入JavaScript】一种JS的继承方法
这些天读了John Resig的<Secrets of JavaScript Ninja>,其中讨论到JS中实现继承的方案,非常有趣,自己探索了一下,形成了笔记,放到这里. 这个方案在Re ...
- jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法
本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...
- Java - 复合模式优于继承
继承是实现代码重用的方法之一,但使用不当则会导致诸多问题. 继承会破坏封装性,对一个具体类进行跨包访问级别的继承很危险. 即,子类依赖父类的实现细节. 如果父类的实现细节发生变化,子类则可能遭到破坏. ...
- 如鹏网学习笔记(七)HTML基础
HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签 ...
- java核心技术-IO
一 .IO 1.1 流的简单介绍和分类 Java流操作的相关的类和接口: Java流类图结构: 四个抽象基类分别为:InputStream .OutputStream .Reader .Writer: ...
- [LeetCode]3Sum Closest题解
3sum Closest: Given an array S of n integers, find three integers in S such that the sum is closest ...