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组件简单总结的更多相关文章

  1. django框架中form组件的简单使用示例:注册验证

    Django中form组件的三大特点: 1. 生成页面可使用的HTML标签 2. 对用户提交的数据进行初步校验    3. 保留上次输入内容 废话不多说,直接进入正题. 这是注册界面截图: 与上一篇a ...

  2. python---django中form组件(1)简单使用和字段了解

    Django中的Form组件功能: 1.对用户请求的验证 2.生成html代码 Form使用:对用户请求进行验证 前端代码: <form action="/f1.html" ...

  3. Django的form组件基本使用——简单校验

    from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...

  4. 《玩转Django2.0》读书笔记-Django建站基础

    <玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...

  5. Django2.0使用

    创建项目: 通过命令行的方式:首先要进入到安装了django的虚拟环境中.然后执行命令: django-admin startproject [项目的名称] 这样就可以在当前目录下创建一个项目了. 通 ...

  6. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    原文:ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性 深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开 ...

  7. 小而美的 React Form 组件

    背景 之间在一篇介绍过 Table 组件< React 实现一个漂亮的 Table > 的文章中讲到过,在企业级后台产品中,用的最多且复杂的组件主要包括 Table.Form.Chart, ...

  8. Web框架django[Form]组件

    新手上路 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 # 创 ...

  9. Django框架基础之Form组件

    服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入 ...

随机推荐

  1. Eclipse Unable to install breakpoint in XXX

    Eclipse  Unable to install breakpoint in  的问题, 到window-preferences-java-compiler下面 把Add line number  ...

  2. 概率图模型之EM算法

    一.EM算法概述 EM算法(Expectation Maximization Algorithm,期望极大算法)是一种迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计(MLE)或极大后验概率估 ...

  3. web安全(xss攻击和csrf攻击)

    1.CSRF攻击: CSRF(Cross-site request forgery):跨站请求伪造. (1).攻击原理: 如上图,在B网站引诱用户访问A网站(用户之前登录过A网站,浏览器 cookie ...

  4. 三十八、SAP设置默认语言

    一.点击系统->用户参数文件->用户数据 二.设置成需要的语言 三.重新登录,并在登录时选择EN 四.进入界面

  5. 简单javascript学习总结

    2019-10-19 //文章汇总于绿叶学习网 console.log()                              //控制台输出 目录 数据类型:.... 2 函数:.... 3 ...

  6. 类的始祖Object

    一.概述 Object时java中顶级父类,也是唯一没有父类的类:它是整个java中最基本的类,在java中所有的类都默认继承了Object. 二.重要方法 1.clone方法 克隆出一个新的对象. ...

  7. Atom :奥特曼的使用

    最近在使用atom的编译器,很不爽,什么快捷键,还有识别vue的页面,还有注释这种快捷下载下来的都没有 必须到setting里面的install里下载,我能大声的说我很不爽吗............ ...

  8. tcp协议与dup协议知识总结

    在工作之余用xmind总结了一些UDP协议与TCP协议的知识点,如果有需要可以通过下方的留言,分享xmind文件和xmind软件.

  9. Day 14:FileInputStream、FileOutputStream

    File类: 用于描述一个文件或者文件夹的. 通过File对象我们可以读取文件或者文件夹的属性数据,如果我们需要读取文件的内容数据,那么我们需要使用IO流技术. IO流(Input Output) I ...

  10. P 1032 挖掘机技术哪家强

    转跳点: