Django form表单与请求的生命周期步骤详解
作者:平仄平仄平平仄 发布时间:2023-06-20 06:29:15
标签:django,form,请求,生命周期
Django
中请求的生命周期
HTTP请求及服务端响应中传输的所有数据都是字符串
步骤
用户在浏览器中输入
url
时,浏览器会生成请求头和请求体发给服务器url
经过wsgi
和中间件,到达路由映射表,在路由中一条一条进行匹配视图函数根据客户端的请求查询响应的数据,返回给
Django
Django
把客户端想要的数据做为一个字符串返回给客户端客户端浏览器接收到返回的数据,经过渲染后显示给用户
FBV
一个url
对应一个视图函数
在url
匹配成功之后,会直接执行对应的视图函数。
CBV
一个url
对应一个类
url
匹配成功找到视图函数中对应的类,然后这个类回到请求头中找到对应的Request.Method
如果客户端以post的方式提交请求,就执行类中的post方法如果客户端以get的方式提交请求,就执行类中的get方法
步骤:
服务端发送包含
url
和method的请求,这两个信息都是字符串类型服务端通过路由映射表匹配成功后会自动去找dispatch方法
Django
会通过dispatch反射的方式找到类中对应的方法并执行勒种的方法执行完毕后,会把客户端想要的数据返回给dispatch方法
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"})}
来源:https://www.cnblogs.com/yanadoude/p/13048725.html
0
投稿
猜你喜欢
- up.htm'::::::: 此程序属扬子原创 ::::::::::::::::::':::::: 在sql2000,200
- 如何编写CSS代码才能更有效率?这是许多网页制作者与开发者都关心的问题。大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,但合理
- 大家平时见到google的广告太多了,但有没有兴趣知道一下它的运行过程呢?下面我们一起来看看这个广告代码的执行过程,以及其中的一些精彩内容。
- 学习目的:掌握下拉列表框的用法,并理解AutoPostBack属性; 理解IsPoskBack及用法; 初识DataTable的
- alleen 问:下面是我制作的一菜单效果,现在的问题是当我只点击一级菜单A一次的时候,一级菜单A的背景色由绿色变成了黄色,再点击一级菜单B
- 最近在学习正则,一些比较有用的东西怕忘记,记下来,比较乱,想一条记录一条:正则表达式在线测试//匹配文本,这个偶尔比较好用,但是要小心字符中
- 研究好多天了,也试过好多办法了,总结出目前发现最好的方法:先说一下基本的东西:<%@ codepage=65001%>
- 说绘画语言,西方的油画是人类视觉语言里怎么也不能忽略的浓烈一笔。14~15世纪,蛋彩画——油画前身的发明,绘画可以使用均匀过渡的色彩渐变,并
- 如IP为192.168.1.111现要截取第二个.之前的值,得到结果192.168,很多网站都只显示前面2个值 &nb
- 我来讲解属性部分, 这是相当有用的, 可要认真上课.首先,jquery中对html标签属性进行操作的关键词是 attr .没错,就4个字母,
- 如何用拦截表单的方法上传图片? 看下列代码:<script language="
- zhanglunray 问:我在mzzx_pic这个层设置了左边距,在ie里显示是正常的,但是在ff里显示时margin-left却没有起到
- body {font-family: Arial, sans-serif; }这是我迄今
- 用QQ聊过天的朋友都对它的自动隐藏窗口功能爱不释手,它可以使窗口显得清爽整洁而且富有动感,笔者的几个朋友都想在自己的网页中加入类似的东东,经
- 先看一下br怎么玩转“清除浮动”了。使用以下代码<br clear="all" />以下是代码效果演示:运行
- 在MySQL中,对于索引的使用并是一直都采用正确的决定。简单表的示例:CREATE TABLE `r2` (ID` int(11) DEFA
- meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head&
- 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
- Microsoft SQL Server 2008通过与Microsoft Office的深度集成,为所有人提供了可用的商业智能,以合适的价
- <script> Function.prototype.$bind=function(object) {