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 保留用户上次输入 ...
随机推荐
- Fr3设置图片打印
见 fr3的文件内容,为xml <?xml version="1.0" encoding="utf-8"?> <TfrxReport Vers ...
- 实训30 延时中断组织块0B20仿真
实训30 延时中断组织块的仿真试验 问题1 系统功能块SFC中提供了一些查询中断状态字的指令,举例说明 例如 SF34 "QRY_DINT" 用来查询 "延时中断&q ...
- 20190108PLC学习心得
应该是数据类型不对 F1查看了帮助文件以后 ,看到 LD应该是用指针类型的数据 改正以后 LD0下的红线消失了 . 绿色 代表没有给 符号 定义 地址 假设 我现在给 符号 字节数 ...
- 如何从Domino迁移到Exchange 2010
从Domino 6.x迁移到Exchange 2010利用了微软提供的工具:Microsoft Transporter Suite,该工具不支持从Domino 6.X直接迁移至Exchange 2 ...
- python 4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事
题目:4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事. A:不是我 B:是C C:是D D:C胡说 for inum in ['A','B','C','D']: prin ...
- 将visual sdudio+Qt5.12 制作的程序打包成单个exe
在GitHub上下载了个qt程序,由于C++不太会,经过安装qt.修改编码等一系列操作终于可以运行了. 生成的exe在运行时依赖很多dll或者图片文件,直接拷贝到其他电脑上无法运行,可以将依赖的dll ...
- SpringBoot 上传文件突然报错 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608
异常信息 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request ...
- 虚拟 DOM 到底是什么?
虚拟 DOM 到底是什么? 作者:wangshengliang 注意:由于文章太长,对文章有删减,但是不会影响整体阅读 是什么? 虚拟 DOM (Virtual DOM )这个概念相信大家都不陌生,从 ...
- excel处理经纬度
=LEFT(A1,FIND("°",A1)-1)*1+MID(A1,FIND("°",A1)+1,2)/60+MID(A1,FIND("′" ...
- 经典SQL50句
50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...