12-15作业

Vue和django的工作流程,django中间件的作用以及请求顺序:
vue向Uwsgi传出http请求
Uwsgi将http请求转化为wsgi 发送给django
django处理后将其发挥uwsgi

Uwsgi再wsgi处理为htpp发给vue
在这里插入图片描述
用户通过浏览器请求页面
拿到用户的url会通过urls.py文件进行匹配,找到相应的View(视图)
调用View中的函数
View中的方法可以通过Models访问数据库数据,并将数据返回给View
如果需要views可以使用Context,context被传递给Template(模板)来生成html页面
返回响应对象到浏览器,给用户呈现效果

中间件:
可以用来在访问网站之前,检查访问的ip地址是否频繁,如果频繁就阻止
(1)处理请求前:在每个请求上,request对象产生之后,url匹配之前调用,返回None或HttpResponse
def process_request(self, request):
pass
(2)处理视图前:在每个请求上,url匹配之后,视图函数调用之前调用,返回None或HttpResponse对象。
def process_view(self, request, view_func, *view_args, **view_kwargs):
pass
(3)处理响应后:视图函数调用之后,所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象。
def process_response(self, request, response):
return
pass
(4)异常处理:当视图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象。
def process_exception(self, request,exception):
pass

请求流程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
http报文:

由请求行,请求头,请求体组成
GET方法是可以没有请求体的

请求行:请求方式。请求URL。HTTP协议以及版本号
一般都在头一行
请求头:请求头包含很多属性 服务端以此获取客户端的信息
空格以上,第一行以下,没有空格则除第一行以外都是
请求体:将组件值通过a=1&a2=1的方式编码成一个格式化串
最后一行 或 没有

请求方式:
GET : 发送一个请求去的服务器上的某一资源
POST : 向url指定的资源提交数据或附加新的数据
PUT : 跟POST方法很像,也是向服务器提交数据,但PUT指定了资源在服务器上的位置,而
POST没有
DELETE : 删除服务器上的某资源
OPTION : 用于获取当前URL所支持的方法。如果请求成功,会有一个Allow的头包含类 似“GET
,POST" 这样的信息

HTTP状态码:
100:通知客户端继续发送请求
200:服务器请求成功,返回客户端所请求的结果
202:表示服务器已经接受了请求,但还没有处理
204:服务器成功处理了请求,但没有返回任何实体内容,可能会返回新的头部元件信息
301:临时重定向,更改新的连接地址
302:永久重定向,更改新的连接底池
400:请求文中语法错误
401:接受请求,但拒绝访问,需要用户的认证
403:接受请求,拒绝访问,访问权限出现问题(客户端未能获得授权)
404:请求失败,客户端请求的资源没有找到或不存在
405:请求方式不匹配
500:服务器遇到位置错误,导致无法完成客户端当前的请求
503:服务器由于临时服务器过载或者维护,无法解决当前的请求

中间件的5大方法:
1.def process_request(self,request):
这个方法会在路由呗执行前调用,返回None或者response对象
2.def process_views(self,request,callback,callback_args,callback_kwargs):
request是Http的对象
view_func是Django即将使用的视图函数
view_args是将传递给视图的位置参数的列表
view_kwargd是将传递给视图的关键字参数的字典。
这个方法实在视图执行之前调用,返回None或者HttpResponse对象
3.def process_response(self,request,response):
俩个参数:request以及response
request与上述一致,response是视图函数返回的,在所有响应返回前会被调用
多个中间件中的process_response方法是按照MIDDLEWARE中的注册顺序倒序执行
4.def process_exception(self,request,exception):
在处理过程中跑出异常时执行,返回HttpResponse,但这个函数一般很少用
5.def process_template_response(self,request,response):
视图函数执行完毕之后被调用,但它有一个前提条件,那就是视图函数返回的对象有一个
render()方法在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值