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中ConfigParse模块的用法
Sep 29 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
python中kmeans聚类实现代码
Feb 23 Python
Python编程中flask的简介与简单使用
Dec 28 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
python向图片里添加文字
Nov 26 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 30 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 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
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
Python下载网络文本数据到本地内存的四种实现方法示例
2018/02/05 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python 星号(*)的多种用途
2020/09/21 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
如何现实servlet的单线程模式
2014/08/05 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
骨干教师培训感言
2014/01/16 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
会计自荐信范文
2014/03/09 职场文书
党建工作经验交流材料
2014/05/25 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
继承公证书格式
2015/01/26 职场文书
会计试用期自我评价
2015/03/10 职场文书
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA