Django form表单与请求的生命周期步骤详解


Posted in Python onJune 07, 2020

Django中请求的生命周期

HTTP请求及服务端响应中传输的所有数据都是字符串

步骤

  • 用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务器
  • url经过wsgi和中间件,到达路由映射表,在路由中一条一条进行匹配
  • 视图函数根据客户端的请求查询响应的数据,返回给
  • DjangoDjango把客户端想要的数据做为一个字符串返回给客户端
  • 客户端浏览器接收到返回的数据,经过渲染后显示给用户

FBV

一个url对应一个视图函数

url匹配成功之后,会直接执行对应的视图函数。

CBV

一个url对应一个类

url匹配成功找到视图函数中对应的类,然后这个类回到请求头中找到对应的Request.Method如果客户端以post的方式提交请求,就执行类中的post方法如果客户端以get的方式提交请求,就执行类中的get方法

步骤:

  1. 服务端发送包含url和method的请求,这两个信息都是字符串类型
  2. 服务端通过路由映射表匹配成功后会自动去找dispatch方法
  3. Django会通过dispatch反射的方式找到类中对应的方法并执行
  4. 勒种的方法执行完毕后,会把客户端想要的数据返回给dispatch方法
  5. dispatch方法把数据返回给客户端

form表单

定义:

Django的表单系统中,所有的表单都继承自django.forms.Form

Django的表单系统

form_obj.as_p		 #在html网页渲染所有的字段
label				#为一个标签添加id号
form_obj.字段		 #渲染指定的字段
min_length			#绑定字段的最短长度
max_length			#绑定字段的最长长度
is_valid()			#验证用户输入的信息是否有效,返回一个布尔值
cleaned_data()		 #清洗数据
error_massage()		 #定义错误的返回信息
#文件上传:
request.POST.get("file")	#获取上传的文件的文件名
request.FILES			#获取上传文件的对象	结果是一个字段
file_obj.name			#获取上传文件在内存中的名字
#上传文件时要使用分片传输的方式
#上传
enctype="multipart/form-data"	#form表单的属性里添加
#接收
if request.method=="POST":
 file_obj = request.FILES.get("up_file")
 fl = open(file_obj.name,'vb')
 for i in file_obj.chunks():
 fl.write(i)
 fl.close()
#可以在class Meta中设定的功能

model = model.UserInfo		#显示对于Model的字典,这里显示用户信息表
fields = "__all__"		#显示数据表中所有的字段
fields = ["username","age"]	#显示数据表的某些指定的字段
exclude = ["email"]		#不显示数据表的某些字段
#自定义页面的标签
labels = {"username":"用户名","age":"年龄","email":"邮箱"}	
#自定义在标签后面显示的提示帮助信息
help_texts = {"username":"请输入正确的用户名","email":"请输入正确的邮箱"}	
#自定义错误信息,用户输入错误时提示
error_messages = {"username":{"required":"用户名不能为空"},"email":{"invalid":"邮箱不能为空"}}
#自定义标签的类型,在这里把email这个输入框的类型更改为email类型
from django import fields as field_widget
field_classes = {}"email":field_widget.EmailField}
#自定义插件(attrs为插件的属性)
from django.forms import widgets as formwidget
widgets = {"username":formwidget.Textarea(attrs={"class":"c1"})}

总结

到此这篇关于Django-form表单与请求的生命周期的文章就介绍到这了,更多相关Django-form表单与请求的生命周期内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中join和split用法实例
Apr 14 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
Python 处理图片像素点的实例
Jan 08 Python
python try 异常处理(史上最全)
Mar 07 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
pycharm新建一个python工程步骤
Jul 16 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Python循环实现n的全排列功能
Sep 16 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
python ETL工具 pyetl
Jun 07 #Python
python框架flask入门之路由及简单实现方法
Jun 07 #Python
python框架flask入门之环境搭建及开启调试
Jun 07 #Python
python实现一次性封装多条sql语句(begin end)
Jun 06 #Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 #Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 #Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 #Python
You might like
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python连接sql server乱码的解决方法
2013/01/28 Python
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
python如何操作mysql
2020/08/17 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
《蜗牛》教学反思
2014/02/18 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
化工操作工岗位职责
2014/04/29 职场文书
文艺委员竞选稿
2015/11/19 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android