首页 > 其他分享 >flask 钩子函数

flask 钩子函数

时间:2024-10-16 13:43:42浏览次数:1  
标签:缓存 函数 flask 钩子 cache request ip

什么是钩子(中间件Middleware)
  钩子或叫钩子函数,是指在执行函数和目标函数之间挂载的函数,框架开发者给调用方提供一个point-挂载点, 一种AOP切面编程思想.
常用的钩子函数
  before_first_request:  处理第一次请求之前执行
  before_request:  在每次请求之前执行,通常使用这个钩子函数预处理一些变量,实现反爬等
  after_request:  注册一个函数,如果没有未处理的异常抛出,在每次请求之后运行.
  teardown_appcontext:  当APP上下文被移除之后执行的函数,可以进行数据库的提交或者回滚

使用缓存设置一个简单反把案例 :

#针对TP做反爬(简单)
ip = request.remote addr
# cache.get()   
# cache.set()  // 设置缓存
if cache.get(ip):
  #做了拦截,不会进入视图函数
  return'小伙子,别爬了!"
else:
  #对每个IP设置一个缓存,1秒内不让复访问
  cache.set(ip,'value',timeout=1)

 

标签:缓存,函数,flask,钩子,cache,request,ip
From: https://www.cnblogs.com/longly1111/p/18469729

相关文章

  • 创建阿里云函数计算中的层(python运行时)
    来源:使用层功能管理依赖减少代码包体积并实现代码复用_函数计算(FC)-阿里云帮助中心(aliyun.com)层可以为您提供公共依赖库、运行时环境及函数扩展等发布与部署能力。您可以将函数依赖的公共库提炼到层或者使用函数计算官方公共层,以减少部署或更新函数时的代码包体积。功能原理......
  • (开题)flask框架汽车维修服务系统(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车保有量的持续增长,汽车维修服务行业迎来了前所未有的发展机遇。然而,传统的汽车维修服务模式存在管理效率低下、信息不透明、配件采......
  • (开题)flask框架人文学子考研交流平台(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于人文学子考研交流平台的研究,现有研究主要以考研整体情况或特定学科考研情况为主,专门针对人文学子这一特定群体的考研交流平台的研......
  • 区分:派生类指定基类构造函数、继承构造、委托构造
    普通的和委托的区别是:同一个类,多个类之间【派生类-基类】普通的和继承构造的区别:是否要手动指明//1.派生类显示调用基类构造函数初始化classA{public:A(intx,inty){std::cout<<"A(x,y)called"<<std::endl;}};classB:publicA{publ......
  • 禁止拷贝构造函数和赋值操作符
     GlobalSettings(constGlobalSettings&)=delete;GlobalSettings&operator=(constGlobalSettings&)=delete;这两行代码是为了禁止拷贝构造函数和赋值操作符,也就是说,GlobalSettings 类的对象无法通过拷贝或赋值来创建或修改。这是为了防止类的实例被复制,通常用于实现单......
  • 函数圈复杂度
    函数圈复杂度(CyclomaticComplexity),也称为圈复杂度或麦凯布复杂度,是衡量代码复杂度的一种指标。它由计算一个函数或模块中独立执行路径的数量得出,反映了程序的控制流复杂性。圈复杂度的核心思想是,函数的复杂性越高,代码中的分支、循环和条件判断越多,程序的独立路径数就越多。因此,......
  • c++如何使用pthread_join函数配合pthread_create函数来创建和等待线程完成,实现线程同
    在C++中,pthread_create 和 pthread_join 是POSIX线程库(pthread)的一部分,用于创建和管理线程。pthread_create 用于创建一个新的线程,而 pthread_join 用于等待一个线程的执行完成,从而实现线程同步与控制。基本步骤使用 pthread_create 函数创建一个线程。线程的工作由......
  • C++中的回调函数
    回调函数(callbackfunction)是指作为参数传递给另一个函数的函数,在某个事件发生或某个任务完成时被调用。回调函数在异步编程中非常常见,因为它们允许代码在某个操作完成后自动执行某些行为,而无需阻塞程序。回调函数的基本特征作为参数传递:回调函数通常是作为参数传递给另一个函......
  • 第九章习题3-编写一个函数print,打印一个学生的成绩数组,该数组有5个学生的数据记录,每个
     ......
  • C++中的不安全函数
    不安全函数(UnsafeFunctions)通常指那些在特定条件下可能导致程序错误、数据损坏或安全漏洞的函数。在编程中,不安全函数可能表现为以下几种情况:缓冲区溢出:当函数在处理数据时没有检查输入的大小,可能导致超出预分配内存空间的写入,造成数据破坏或程序崩溃。例如,在C和C++中,strcpy、......