当前位置: 首页 > wzjs >正文

无锡cms建站wordpress 菜单结构

无锡cms建站,wordpress 菜单结构,哪里有网站开发企业,wordpress自定义DIV样式Django 中的中间件是一种机制,用于在请求和响应之间执行额外的处理操作。中间件可以在 Django 处理请求的不同阶段介入,允许你对请求和响应进行修改、记录、验证等操作。默认中间件 MIDDLEWARE [django.middleware.security.SecurityMiddleware, django…

Django 中的中间件是一种机制,用于在请求和响应之间执行额外的处理操作。中间件可以在 Django 处理请求的不同阶段介入,允许你对请求和响应进行修改、记录、验证等操作。

默认中间件 

MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]

1、django.middleware.security.SecurityMiddleware:
这个中间件负责提供一些与安全相关的功能,例如设置HTTP头部中的安全策略、强制使用HTTPS等。
2、django.contrib.sessions.middleware.SessionMiddleware:
这个中间件处理会话数据。它为每个请求提供了一个会话对象,可以用于在请求之间存储和检索数据。
3、django.middleware.common.CommonMiddleware:
这个中间件提供了一些常见的Web开发功能,如URL重写、缓存控制等。
4、django.middleware.csrf.CsrfViewMiddleware:
这个中间件用于处理跨站请求伪造(CSRF)保护。它在提交表单数据时验证CSRF令牌,以防止恶意站点利用用户的身份执行恶意操作。
5、django.contrib.auth.middleware.AuthenticationMiddleware:
这个中间件处理用户身份验证。它在请求过程中检查用户是否已通过身份验证,并将用户对象添加到请求的上下文中。
6、django.contrib.messages.middleware.MessageMiddleware:
这个中间件处理闪存消息。闪存消息是一种在请求之间传递的临时消息,通常用于显示一次性的成功消息、错误消息或其他通知。
7、django.middleware.clickjacking.XFrameOptionsMiddleware:
这个中间件提供了点击劫持(clickjacking)保护。它通过设置X-Frame-Options响应头来防止将网站嵌入到其他网页的iframe中,从而防止点击劫持攻击。

自定义中间件

 这是一个中间件的生效阶段图:

其实,不难看出,对于中间件,基本上就那几个阶段,不同的阶段,对应不同的方法。

process_request(self, request):

process_view() 它只在 Django 执行url前被调用。

应用:我们可以定义合适的限流或权限啥的

它只能返回 None 或 HttpResponse 对象。如果它返回 None,Django 将继续处理这个请求,如果返回 HttpResponse 对象,那就是说,被拦截了,直接走 HttpResponse 给前端返回相应了就。

process_view(self, request, view_func, view_func_args, view_func_kwargs):

process_view() 只在 Django 调用视图前被调用

应用:一样,可以在这里做鉴权啥都

它只能返回 None 或 HttpResponse 对象。如果它返回 None,Django 将继续处理这个请求,执行任何其他的 process_view() ,然后执行相应的视图(request里的url指向的视图)。如果返回 HttpResponse 对象,就是说,直接就不再执行视图函数的逻辑了,直接等于被拦截了,然后就返回了。

process_exception(self, request, exception):

在视图执行期间,出现异常而被抛出时,就会执行该方法。

它只能返回 None 或 HttpResponse 对象。当视图引发异常时,Django 会调用 process_exception()process_exception() 应该返回 None 或 HttpResponse 对象。如果它返回一个 HttpResponse 对象,模板响应和响应中间件将被应用且会将结果响应返回浏览器。否则,就会开始默认异常处理。

process_response(self, request, response):

它只能返回 None 或 HttpResponse 对象。所有的响应返回给浏览器之前被调用,返回HttpResponse,一定会走这个逻辑,即使view里面代码错了,先走错的process_exception(),再走这个。

应用:用于规范响应输出格式啥的

process_template_response(self, request, response):

它只能返回 None 或 TemplateResponse对象,request 是一个 HttpRequest 对象。response 是 TemplateResponse 对象(或者等效对象),它通过 Django 视图或中间件返回

process_template_response() 在视图被完全执行后调用,且视图返回的是 render() 方法,是一个 TemplateResponse 或等效对象 就会执行到该方法。(因此该方法并不常用)

 =========================================

自定义的中间件,有2中模式,一种是需要继承 MiddlewareMixin 类的模式,一种是不需要继承 MiddlewareMixin 的模式。

看第一种,不继承 MiddlewareMixin  类:

class SimpleMiddleware:def __init__(self, get_response):self.get_response = get_response# One-time configuration and initialization.def __call__(self, request):# 在请求之前执行的代码逻辑,在这里实现response = self.get_response(request)# 在请求之后执行的代码逻辑,在这实现 return responsdef process_view(request, view_func, view_args, view_kwargs)return None or HttpResponse(xx)def process_exception(self, request, exception):return None or HttpResponse(xx)def process_template_response(self, request, response)return

     这里面:

    • __init__方法在服务器启动时被调用,用于中间件的初始化。
    • __call__方法在每次请求时被调用,可以在此处添加自定义逻辑

    第二种,继承 MiddlewareMixin  类:

    from django.http import HttpResponse
    from django.utils.deprecation import MiddlewareMixinclass SimpleMiddleware(MiddlewareMixin):def process_request(self, request):# 执行路由之前被调用,返回None就是通过,返回HttpResponse  就是拦截成功print("收到请求,但还没执行 url 路由")return Nonedef process_view(self, request, view_func, view_func_args, view_func_kwargs):# 调用视图函数之前被调用,返回None就是通过,返回HttpResponse  就是拦截成功print("以运行了url指向, 但还没开始执行视图")return Nonedef process_exception(self, request, exception):# 视图里面出错了,就会自动到这个里面执行,返回HttpResponse# 抓异常,发日志/邮件print("视图执行出错了")return Nonedef process_response(self, request, response):# 所有的响应返回给浏览器之前被调用,返回HttpResponse# 一定会走这个逻辑,即使view里面代码错了,先走错的,再走这个print("视图执行出错了")return None# def process_template_response(self, request, response):#    # 很少用#    # 只有我们的视图里面返回了render渲染的,才会走这个#     print("视图返回了render函数")#     return None

     然后,自定义的中间件就完成了。

    接下来只需将其注册到setting里就行:

    MIDDLEWARE = [# ...'myapp.middleware.SimpleMiddleware',# ...
    ]

    这里需要注意,中间件的注册表里,是有序的,所以注意自定义中间件放的位置。


    文章转载自:

    http://JtrH09sJ.nsppc.cn
    http://s4XCo3TO.nsppc.cn
    http://R1ffn1nm.nsppc.cn
    http://UCx7vfgP.nsppc.cn
    http://mIUoD9k1.nsppc.cn
    http://Ex71999w.nsppc.cn
    http://PmIVQSEV.nsppc.cn
    http://s5tRdYLn.nsppc.cn
    http://MU4dZXCw.nsppc.cn
    http://HMbrERq0.nsppc.cn
    http://sPyrcpcV.nsppc.cn
    http://wVqr9fW5.nsppc.cn
    http://JYUDJDgb.nsppc.cn
    http://KC5nkuBN.nsppc.cn
    http://KHrkyRAt.nsppc.cn
    http://MutIXJ0Z.nsppc.cn
    http://6O6kGRd2.nsppc.cn
    http://qNL2zBMB.nsppc.cn
    http://av6dTls5.nsppc.cn
    http://lijv55W4.nsppc.cn
    http://bG5BMBSE.nsppc.cn
    http://q9FiK8vf.nsppc.cn
    http://EztOjkAj.nsppc.cn
    http://OiIEqNGc.nsppc.cn
    http://ZI4FRbMF.nsppc.cn
    http://CcKtvxx1.nsppc.cn
    http://spPKd3sw.nsppc.cn
    http://NmHHtDzm.nsppc.cn
    http://f77D1BgJ.nsppc.cn
    http://ho6Us3mo.nsppc.cn
    http://www.dtcms.com/wzjs/756318.html

    相关文章:

  • wordpress小程序扫码登录网站优化公司哪家效果好
  • 网站开发社区工程造价价格信息网
  • 昆山建筑行业网站广州网站制作选哪家
  • 做苗木选择哪个网站青岛公路建设集团有限公司网站
  • 电子商务网站设计与...网站建设方向课程
  • 福建建设局网站宁夏电力建设工程公司外部网站
  • 注册网站是哪个部门南京手机网站开发
  • 网站开发php jsp三亚市建设局官方网站
  • 陕西省建设监理协会网站北京建站者公司
  • 肇庆 网站建设广告投放平台排名
  • wordpress网站域名地址郑州地区网站建设公司
  • 安居客房产官方网站wordpress添加模块
  • 企业网站营销案例房产中介 网站模板
  • 合肥解封最新消息网站排名优化工具
  • 开发公司网站设计橙象品牌设计
  • 网站在哪里设置域名设计成功一个电子商务网站
  • 做房产网站哪个好常见的简单的app开发
  • 餐饮招商加盟网站建设费用沧州南皮网站建设公司
  • 食品饮料网站源码手动升级wordpress
  • 网站接入服务单位个人备案网站可以做支付吗
  • 怎么在百度上做单位网站thinkphp网站源码下载
  • 怎么做网站内容添加洛阳霞光做网站
  • 外网代理服务器网站上海徽与章网站建设宗旨
  • 做网站如何分页网络营销可以做什么工作
  • 建立网站策划书wordpress 系统安装教程
  • 河北省保定市唐县城乡建设网站h5 app开发 网站建设
  • 广州做外贸网站的公司简介wordpress 无法html
  • 什么视频直播网站做挣钱短网址生成功能
  • 建设美食网站的作用网站应急响应机制建设
  • 注册公司如何做网站wordpress音频插件下载