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内置函数bin() oct()等实现进制转换
Dec 30 Python
Python语言技巧之三元运算符使用介绍
Mar 04 Python
python实现socket客户端和服务端简单示例
Feb 24 Python
Python实现字典的key和values的交换
Aug 04 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
python 初始化一个定长的数组实例
Dec 02 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
Django封装交互接口代码
Jul 12 Python
python基础之文件处理知识总结
May 23 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
PHP 压缩文件夹的类代码
2009/11/05 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
js操作二进制数据方法
2018/03/03 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python读写文件操作示例程序
2013/12/02 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python yield关键词案例测试
2019/10/15 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
秋季婚礼证婚词
2014/01/11 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
技术员个人工作总结
2015/03/03 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers