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

这篇文章主要介绍了Django-form表单与请求的生命周期,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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_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表单与请求的生命周期内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...