05.Django-form表单与请求的生命周期

微信扫一扫,分享到朋友圈

05.Django-form表单与请求的生命周期

Django
请求生命周期

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

步骤

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

FBV

一个 url
对应一个视图函数

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

CBV

一个 url
对应一个类

  • url
    匹配成功找到视图函数中对应的类,然后这个类回到请求头中找到对应的 Request.Method

    • 如果客户端以post的方式提交请求,就执行类中的post方法
    • 如果客户端以get的方式提交请求,就执行类中的get方法

步骤:

url
Django

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"})}

最前沿:大规模深度强化学习的发展

上一篇

汽车之家或死于直播?

下一篇

你也可能喜欢

05.Django-form表单与请求的生命周期

长按储存图像,分享给朋友