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读取Excel的方法实例分析
Jul 11 Python
python&MongoDB爬取图书馆借阅记录
Feb 05 Python
python自动化之Ansible的安装教程
Jun 13 Python
django和vue实现数据交互的方法
Aug 21 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
Python爬虫之爬取二手房信息
Apr 27 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 Python
python获取字符串中的email
Mar 31 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
laravel学习教程之关联模型
2016/07/30 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
调试php程序的简单步骤
2019/10/04 PHP
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
python输出pdf文档的实例
2020/02/13 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
个人找工作的自我评价
2013/10/17 职场文书
户外宣传策划方案
2014/05/25 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
安全责任书
2015/01/29 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书