您的位置:首页技术文章
文章详情页

Django form表单与请求的生命周期步骤详解

【字号: 日期:2024-09-29 14:56:40浏览:43作者:猪猪

Django中请求的生命周期

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

步骤

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

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_widgetfield_classes = {}'email':field_widget.EmailField}#自定义插件(attrs为插件的属性)from django.forms import widgets as formwidgetwidgets = {'username':formwidget.Textarea(attrs={'class':'c1'})}

总结

到此这篇关于Django-form表单与请求的生命周期的文章就介绍到这了,更多相关Django-form表单与请求的生命周期内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Django
相关文章: