python django Form表单
Django 拥有自己独立的表单功能块,可以完成:
1、表单的定义
2、表单的校验
3、表单的前端样式
等功能,方便我们开发,那么接下来,我们看一下表单的定义
首先我们确定我们要编写的功能,一个提供给博客的访客发送自己的联系方式的功能。并且搭建相对应的数据库
from django.db import models class Connection(models.Model):
con_name = models.CharField(max_length = 32,verbose_name = "联系人姓名")
con_phone = models.CharField(max_length=32, verbose_name="联系人姓名")
con_email = models.EmailField(verbose_name="联系人姓名") def __str__(self):
return "%s : %s"%(self.con_name,self.con_email)
表单的定义
form表单的定义通过Django下面的form类进行定义,过程和Django的模型定义类似,首先在app目录当中创建form定义的专属文件form.py,然后开始我们的编写。
常用的表单定义方法有两种:
1、 常规定义,我们按照与model模型定义类似的定义方法定义表单
#coding:utf-8
from django import forms class ConnectionForm(forms.Form):
con_name = forms.CharField(max_length = 32,label = "联系人姓名")
con_phone = forms.CharField(max_length=32, label="联系人姓名")
con_email = forms.EmailField(label="联系人姓名")
这样我们就定义了一个表单,这个表单和上面讲课用的联系人表单的效果是一模一样的。当然惯用form字段里面常用的字段和对应的参数,也给大家列出 来:
常用的字段
1、charfield 对应单行输入框
2、booleanfield 对应checkbox选择框
3、choicefield 对应下拉菜单选择框 重要参数choice
4、datafield 对应一个单行输入框,但是会自动转化为日期类型
5、emailfield 对应输入框,自动验证是否是邮件地址
6、filefield 对应文件上传选项
7、filepathfiled 对应一个(文件组成的下拉菜单)选择,必须参数path=''.选项为这个地址里边所有的文件。可选参数recursive=True是否包含子文件夹里的文件
8、imagefield 图片上传按钮。需要pillow模块
9、urlfield 对应输入框 自动验证是否为网址格式
字段常用的参数
1、rqeuired 字段是否为必填 默认为True
2、label 类似于输入框前边的提示信息
3、initial 初始值(占位符)就是给出一个默认值
4、help_text 字段的辅助描述
5、error_message={} 覆盖{{form.name.error}}信息
6、disable 字段是否可以修改
7、widget 负责渲染网页上HTML表单的输入元素和提取提交的原始数据。
8、max_length 最大长度
9、min_length 最小长度
2、对应Django模型定义
为了保证我们定义的表单模型和数据库提交模型的一致性,我们可以通过Form表单类当中嵌套元类Meta来实现通过模型快速的定义表单
#coding:utf-8
from django import forms
from Article.models import Connection #首先导入要对接的数据库
class ConnectionForm(forms.ModelForm): #注意,我们现在继承的是ModelForm而不是Forms
class Meta: #这是一个元类
model = Connection #指定models对应的模型
fields = ["con_name","con_phone","con_email"] #指定显示的字段
当然,这么简单的代码只能完成最简单的效果,我们还需要一些常用的参数
1、fields 要展示的字段,接收的是一个列表,如果不写默认是models的所有字段
2、exclude 不要展示的字段,接收的是一个列表,排除的字段,默认没有
3、widgets 是一个模型字段的名称对应的样式的字典
4、labels 是一个模型字段的名称对应的标签的字典
5、help_texts 是一个模型字段的名称对应的帮助文档的字典
6、error_messages是一个模型字段的名称对应的错误提示的字典
这种写法使用的比较少,举一个例子来看看对应Django模型定义表单的参数使用
#coding:utf-8
from django import forms
from Article.models import Connection #首先导入要对接的数据库
class ConnectionForm(forms.ModelForm): #注意,我们现在继承的是ModelForm而不是Forms
class Meta: #这是一个元类
model = Connection #指定models对应的模型
fields = ["con_name","con_phone","con_email"] #指定显示的字段
widgets = {
"con_name": forms.TextInput(attrs = {"style":"font-size:20px;"}),
"con_phone": forms.TextInput(attrs={"style": "font-size:20px;"}),
"con_email": forms.TextInput(attrs={"style": "font-size:20px;"})
} #指定对应标签的样式
python django Form表单的更多相关文章
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- Django form表单 组件
目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...
- Django学习笔记之Django Form表单详解
知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...
- django Form表单的使用
Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...
- Django form表单
Form介绍 之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来.与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入, ...
- Django Form表单组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- django Form 表单 总结与小实例
开头寄语: 这几天一直在看Django的form表单验证,然后想对于这几天要有个总结. 首先,先来看一下找到的一个form表单验证的流程: 验证过程 流程详解1. 函数full_clean()依次调用 ...
- Django Form表单学习总结
Form中添加自定义的验证: 1.对特定字段属性的验证; 2.包含多字段的验证. 先创建一个简单的Form: from django import forms class ContactF ...
随机推荐
- Python数据类型-1 数据类型介绍
数据类型 在python这门语言中,数据类型分为两种. 内置的和自定义的. 内置的包括数字.字符串.布尔.列表.元组.字典.Bytes.集合这些常用的以及一些不太常用的数据类型.而自定义的,一般以类的 ...
- python字典中值为列表或字典的构造方式
1.值为列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) >>dic.setdefault('a',[]).append(1) & ...
- Python学习第十课——文件的基本操作
文件基本操作 文件读操作 #读出路径下的测试.txt文件 f = open('测试.txt', encoding='utf-8') # 打开要读文件 data = f.read() # 读取内容 pr ...
- Day11 - J - Brave Game HDU - 1846
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻.今天,大家选择上 ...
- Centos7 mariadb (mysql)主从复制实现
一.mysql基本命令 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接mysql服务 ...
- Django: 页面设计,实现验证码刷新
之前以为一定要用ajax实现,其实是不用的 改动img的src就行,但两次的src是不能一样的. 所以我是这么实现的: <script> 'use strict'; function re ...
- ASP.NET MVC 4 中Razor 视图中JS无法调试 (重要)
谷歌浏览器,firefox,IE 都可以 1.首先检查IE中这2个属性是否勾选了. 2.选择IE浏览器进行调试,调试方法有2种 A:采用debugger;的方法,如下图所示: 这时不用调试断点就会在d ...
- VUE 父子组件之间通信传值 props和 $emit
1.父组件传值给子组件 $props,子组件传值给父组件 $emit 父组件 <div id="app" > <tr ...
- 《算法技术手册》George T. Heineman(作者)epub+mobi+azw3
内容简介 开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法.<算法技术手册>讲解了许多现有的算法,可用于解决各种问题.通过阅读它,可以使您学会如何选择和实现 ...
- Day10 - 灾难 HYSBZ - 2815
Description 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学过生 ...