Django2.0——Form组件简单总结
Django提供了一个Form组件来配和前端的表单进行使用,Form有两个强大的功能,分别是生成HTML代码和验证数据的合法性。通常我们不会用其第一个功能,因为前端的设计可以做出更加精美且多样的表单页面,为什么要用python呢?而另一个验证功能是经常会在view中使用到的。这个组件所在库为django.forms。
我们一般会在app下创建一个form.py的文件来专门写form类。写form和写models几乎是一模一样的,它同样需要建立其字段名及其类型和参数,不同的是他没有null、blank等几种参数。下面介绍几个常用的字段类型及其参数。
- 所有字段都可使用的参数:
required=True, 是否允许为空
widget=None, HTML插件
label=None, 用于生成Label标签或显示内容
initial=None, 初始值
help_text='', 帮助信息(在标签旁边显示)
error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'}
show_hidden_initial=False, 是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用于检验两次输入是否一直)
validators=[], 自定义验证规则
localize=False, 是否支持本地化
disabled=False, 是否可以编辑
label_suffix=None Label内容后缀
- CharField
max_length=None, 最大长度
min_length=None, 最小长度
strip=True 是否移除用户输入空白
- IntegerField
max_value=None, 最大值
min_value=None, 最小值
- EmailField
forms类写完后,我们会在视图函数中导入,并以request.POST作为参数进行实例化,得到form的实例化对象。这个对象可以通过cleaned_data来保存用户提交上来的数据,并返回一个字典对象,这时就可以用get方法取到相应的值。对于实例化后的对象,还可以通过is_valid()方法判断提交上来的数据是否合乎form字段的要求,这是form组件最有价值的一点。若发现数据不合法,可通过传递变量的方式,将实例化对象传到指定模板中,再利用对象.字段名.errors.0来显示错误提示。错误提示可自己在error_message参数中自定义。
Session
Session不同于Cookie的是Session具有更高的安全性,因为cookie是将所有的数据都存储在本地浏览器中,而Session是将数据存储在服务端的数据库,只返回一个session_id存储于cookie中,当我们启用会话后,每一个request对象都有一个Session属性,这个属性是一个类似于字典的对象,故可以使用get方法取出里面携带的值。
- get(key, default=None)
- clear():清空所有会话
- flush():删除当前会话数据并删除会话的Cookie
- del request.session['session_id']:删除指定的session
- set_expire(value):设定session有效期,若value是整数,单位则为秒、若value为0,表示会话在浏览器关闭时,session失效、若value为None,表示会话永不过期、若value是一个datatime对象或timedelta,表示session会在这个时间后失效。
Django一般是默认配置好了session的启动,在setting.py中会有一下两条信息,则表示配置好了。


下篇博客会利用这些知识实现简单的注册、登陆界面。
Django2.0——Form组件简单总结的更多相关文章
- django框架中form组件的简单使用示例:注册验证
Django中form组件的三大特点: 1. 生成页面可使用的HTML标签 2. 对用户提交的数据进行初步校验 3. 保留上次输入内容 废话不多说,直接进入正题. 这是注册界面截图: 与上一篇a ...
- python---django中form组件(1)简单使用和字段了解
Django中的Form组件功能: 1.对用户请求的验证 2.生成html代码 Form使用:对用户请求进行验证 前端代码: <form action="/f1.html" ...
- Django的form组件基本使用——简单校验
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...
- 《玩转Django2.0》读书笔记-Django建站基础
<玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...
- Django2.0使用
创建项目: 通过命令行的方式:首先要进入到安装了django的虚拟环境中.然后执行命令: django-admin startproject [项目的名称] 这样就可以在当前目录下创建一个项目了. 通 ...
- ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性
原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性 深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开 ...
- 小而美的 React Form 组件
背景 之间在一篇介绍过 Table 组件< React 实现一个漂亮的 Table > 的文章中讲到过,在企业级后台产品中,用的最多且复杂的组件主要包括 Table.Form.Chart, ...
- Web框架django[Form]组件
新手上路 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 # 创 ...
- Django框架基础之Form组件
服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能: 1 验证(显示错误信息) 2 保留用户上次输入 ...
随机推荐
- Golang的基础数据类型-整型
Golang的基础数据类型-整型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.整型概述 Go语言的整数类型一共有10个. int: 默认是有符号(signed)整形,占用空间 ...
- 《学习R》笔记:科学计算器、检查变量和工作区、向量、矩阵和数组、列表和数据框
一.第二章 科学计算器 要检查两个数字是否一样,要使用 all.equal() ,不要使用 == ,== 符号仅用于比较两个整型数是否存在相同 . > all.equal(sqrt(2)^2,2 ...
- Sublime Text3 python自动补全问题——Sublime Text3安装Anaconda插件
学习python的时候 在编辑器的选择上会有很多选择,我最终还是选择了sublime text3. 相对于其他编辑器,sublime text有以下特性: 插件多,类似GoSublime,Emmet信 ...
- jQuery实现图片放大镜效果
实现图片放大镜的原理: 给放大镜元素一个对应的html元素为<div class='right'> 设置这个div的宽高固定为某个值(350px,350px) 设置div的css为超出部分 ...
- Tomcat添加SSL安全认证
环境 Tomcat7.阿里SSL证书 server.xml <Connector port="443" protocol="org.apache.coyote.ht ...
- Hadoop完全高可用集群安装
架构图(HA模型没有SNN节点) 用vm规划了8台机器,用到了7台,SNN节点没用 NN DN SN ZKFC ZK JNN RM NM node1 * * node2 * ...
- JavaScript的函数和对象介绍
一.JavaScript中的函数 1.函数的概述 JavaScript中的函数是一段可执行代码的合集,在需要执行的时候可以在方法名之后添加一对小括号执行方法.是一段可执行的字符串. 2.函数中隐藏的属 ...
- K8S Kubernetes 简单介绍 转自 http://time-track.cn/kubernetes-trial.html Kubernetes初体验
这段时间学习了一下 git jenkins docker 最近也在看 Kubernetes 感觉写得很赞 也是对自己对于K8S 有了进一步得理解 感谢 倪 大神得Blog 也希望看到这篇Bl ...
- 【剑指Offer】面试题24. 反转链表
题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3 ...
- UVA - 1262 Password(密码)(暴力枚举)
题意:给两个6行5列的字母矩阵,找出满足如下条件的“密码”:密码中的每个字母在两个矩阵的对应列中均出现.给定k(1<=k<=7777),你的任务是找出字典序第k小的密码.如果不存在,输出N ...