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 ...
随机推荐
- spring boot 整合 Camunda
官网:https://camunda.com/ 论坛:https://forum.camunda.org/ 一. 创建 spring boot 项目,添加项目依赖 <?xml version=& ...
- development tool
Eclipse : https://www.eclipse.org/downloads/ WebStorm: http://www.jetbrains.com/webstorm/do ...
- redhat 7.6 apache 服务简单安装-01
rpm -qa | grep httpd //该命令查看apache是否安装,下面图片是已安装,未安装不会显示任何内容 yum install httpd -y ...
- Java程序与其它进程的数据通信
Java程序中可以启动其他的应用程序,这种在Java中启动的进程称为子进程,启动子进程的Java程序称为父进程,其实这个父进程就是一个Java虚拟机1.在Java程序中可以用Process类的实例对象 ...
- UI的考核方式之【主题颜色 + 主题字体 + 主题样式】
首先,项目中的颜色需要怎么管理呢? 宏?常量? 宏的值可以被改变,不用宏.那就用常量.那常量的名字怎么去起名呢? WSFConstants_Color_0xCCCCCC? WSFConstants_C ...
- 【转】干货分享-100个shell脚本
本文用于记录学习和日常中使用过的shell脚本 [脚本1]打印形状 打印等腰三角形.直角三角形.倒直角三角形.菱形 #!/bin/bash # 等腰三角形 read -p "Please i ...
- 小陈WEB漏洞扫描器 V2.0
小陈WEB漏洞扫描器 V2.0 小陈WEB漏洞扫描器 V2.0 https://pan.baidu.com/s/1NSmFCyxowEa3YlOuhvtwwQ
- 回文串[APIO2014](回文树)
题目描述 给你一个由小写拉丁字母组成的字符串 s.我们定义 s 的一个子串的存在值为这个子串在 s中出现的次数乘以这个子串的长度.对于给你的这个字符串 s,求所有回文子串中的最大存在值. 输入格式 一 ...
- 夯实Java基础(十六)——枚举类的使用
1.枚举类简介 枚举是仅容许特定数据类型值的有限集合.例如我们平时生活中星期一到星期日这七天就是一个特定的有限集合,一年四季的春夏秋冬也同样是的,它们都是枚举.枚举和我们数学中的集合非常相似,如果我们 ...
- 45 孩子们的游戏(圆圈中最后剩下的数) + list操作总结+ for_each多记忆容易忘记
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...