中间件:AOP中间件,在Django中内置了一些项目自带的中间件,那么中间件是什么呢

这里说明一下,一开始我也不太清楚中间件到底有什么用(大家也别急,下面会有详细的例子给大家解释)--------》

一、第一步:注册中间件文件

前两个是由我注册的,注册步骤类似Django中的绝大多数文件注册----------写上文件的根目录即可

二、第二步:写中间文件的切点函数----------------

  2.1举例--》指定ip用户抢票概率高

前面说到切点有很多,其中的   def process_request(self,request):就是用来解耦合的,通俗点就是举个例子:------设计一个函数时常会用到判断从而得到不同的输出,如果写在一起会显得很乱,于是用到

def process_request(self,request)  来解耦合,拆分出开,市面上的很多游戏都有新手必得奖励,这里的抽卡奖励就用到了类是中间件的东西,判断是新手则执行中间切点函数,跳过主程序的 一般抽卡函数,------------------------你是不是想到的什么。。。。。。。。。。。。。哈哈哈哈,非酋和欧皇的由来

#利用中间件来查看模拟抢手机的过程-------#模拟抢手机必中-----白名单---中间件
def get_phone(request):
if random.randrange(100)>95:
return HttpResponse("恭喜您,抢到小米20!")
return HttpResponse("正在排队....") 这是原函数的判断过程----------
class HelloMiddle(MiddlewareMixin):#---------------------------------第一个类
#---------------------------------打印ip
def process_request(self,request):
print(request.META.get("REMOTE_ADDR"))#统计访问服务器的ip可用于进行数据分析
#
# #模拟抢手机必中-----白名单
# ip=request.META.get("REMOTE_ADDR")
#----------------------------------------------------
# if request.path=="/App1/getphone/":
# if ip=="127.0.0.1":
# if random.randrange(100)>30:
# return HttpResponse("恭喜您免费抢到小米20")
这是中间件的函数,无形中便可区分开来,class类和def process_request()只需要写一次,不同的路由,统统用if判断即可

  2.2举例--》10秒内只能搜索一次,频率控制反爬

 #AOP控制搜索频率---10秒内只能搜索一次
def search(request):
return HttpResponse("这是你搜索到的种子资源!") ---------------------------------------------------------
# # AOP控制搜索频率---10秒内只能搜索一次
# if request.path=='/App1/search/':
# #通过Cache缓存----这里用ip作为唯一标识
# result=cache.get(ip)
# if result:
# return HttpResponse("您的访问过于频繁,请10秒后再试!")
# #不存在则设置cache
# cache.set(ip,ip,timeout=10)#第一个ip为设置的cache的名字,后一个为cache存的内容为ip

通过以上的我们可以得出结论,中间件用于解耦合很强大,非常方便,用的时候也要注意中间件的注册顺序哟!!!!

												

Django2.2 中间件的使用的更多相关文章

  1. Django2.2中间件详解

    中间件是 Django 用来处理请求和响应的钩子框架.它是一个轻量级的.底层级的"插件"系统,用于全局性地控制Django 的输入或输出,可以理解为内置的app或者小框架. 在dj ...

  2. Django2.0——中间件

    Django中间件middleware本质是一个类,在请求到返回的中间,类中不同的方法会在指定的时机中被触发.setting.py的变量MIDDLEWARE_CLASSES中的每一个元素都是中间件,且 ...

  3. Django2中文文档--目录及介绍部分

    Django2文档-文档结构 我是按照官方文档的格式进行翻译,所以格式根官方格式一致 如果大家发现哪些地方有问题可以联系我 2426525089@qq.com 或者加入QQ群跟我一起翻译,群号码: 2 ...

  4. 《玩转Django2.0》读书笔记-Django配置信息

    <玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...

  5. Django 详解 中间件Middleware

    Django中间件 还是涉及到django的请求生命周期.middle ware 请求穿过中间件到达url,再经过中间件返回给用户. 简单实例 django项目根目录新建一个Middle文件夹,再新建 ...

  6. Django2.0.1开发框架搭建

    1.使用vs2017创建空白django项目 2.右键python环境的env---安装python包  升级django到2.0.1和setuptools到38.4.0版本,具体环境如下: 3.配置 ...

  7. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  8. centos7+python3.6+nginx+uwsgi+django2的搭建笔记

    公司需上线一套python编写的代码,需要给搭建一套环境  ,本次采用centos7+python3.6+nginx+uwsgi2+django2+mysql5.7的方式来进行搭建 写在部署前 在线上 ...

  9. 对django中间件的理解

    1. 什么是中间件(Django)? 对Django而言,中间件就是继承自MiddlewareMixin(位于django.utils.deprecation模块下)的类,该类对请求(request) ...

随机推荐

  1. spark mllib docs,MLlib: RDD-based API

    MLlib: RDD-based API This page documents sections of the MLlib guide for the RDD-based API (the spar ...

  2. Python--day27--内置函数isinstance和issubclass方法

  3. P1112 区间连续段

    题目描述 给你一个长度为n的数组 \(a_1, a_2, \dots a_n\) . 一开始这n个元素都为0. 然后有m次操作,每次操作有两种操作类型: update x y a:将区间 \([x,y ...

  4. Hibernate @OneToOne懒加载实现解决方案

    在hibernate注解(三)中,我提高过一对一(@OneToOne)懒加载失效的问题.虽然给出了解决方法,但并没有给出完整的解决方案.今天我专门针对该问题进行讨论.至于懒加载失效的原因,在之前的文章 ...

  5. Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败

    在安装laravel5.5后, 访问显示报错. call to undefined function openssl cipher iv length() 经查为php7.1的OpenSSL扩展加载失 ...

  6. H3C VLAN基本配置

  7. 手把手教你用ngrx管理Angular状态

    本文将与你一起探讨如何用不可变数据储存的方式进行Angular应用的状态管理 :ngrx/store——Angular的响应式Redux.本文将会完成一个小型简单的Angular应用,最终代码可以在这 ...

  8. CodeForce - 1187 E. Tree Painting (换根dp)

    You are given a tree (an undirected connected acyclic graph) consisting of nn vertices. You are play ...

  9. [板子]快速幂&矩阵快速幂

    不会的来这看:https://www.cnblogs.com/CXCXCXC/p/4641812.html 简单的一说:当转换为二进制的时候有位运算这种黑科技,&相当于%2判断奇偶性. x&a ...

  10. 牛客练习赛4 A Laptop

    传送门:https://ac.nowcoder.com/acm/contest/16/A 题意: 每个物品有2个属性,求有多少个物品的两个属性完全小于另一个物品 题解: 求逆序对板子题 代码: /** ...