flask模块化、封装使用缓存cache(flask_caching)

1.安装flask_caching库

pip install flask_caching

2.创建utils Python 软件包以及cache_helper.py

2.1cache_helper.py代码

from flask_caching import Cachecache = Cache()class CacheHelper:def __init__(self, app, config):cache.init_app(app, config)@staticmethoddef get(key):return cache.get(key)@staticmethoddef set(key, value, timeout=None):cache.set(key, value, timeout=timeout)@staticmethoddef delete(key):cache.delete(key)

3.app.py文件中代码

3.1.初始化cache代码

# 初始化cache,硬编码方式配置缓存
# cache = CacheHelper(app, config={'CACHE_TYPE': 'simple'})
# 初始化cache,读取配置文件方式配置缓存
cache = CacheHelper(app,  config=cache_config)

3.2.config.py完整代码如下 

# 配置Cache缓存类型参数值
cache_config = {'CACHE_TYPE': 'simple'  # 使用本地python字典进行存储,线程非安全
}

3. service中使用cache,my_service.py完整代码

3.1my_service.py中使用cache代码

from flask import Flaskfrom utils.cache_helper import cacheclass MyService:@staticmethoddef set_my_cache():# 写入缓存,过期时间为60秒cache.set('my_cache', "你好!cache", timeout=60)@staticmethoddef get_my_cache():# 读取缓存my_cache = cache.get('my_cache')return my_cache

4.app.py完整代码

4.1调用my_service.py(MyService类)中的方法

from flask import Flaskfrom config.config import cache_config
from services.my_service import MyService
from utils.cache_helper import CacheHelperapp = Flask(__name__)# 初始化cache,硬编码方式配置缓存
# cache = CacheHelper(app, config={'CACHE_TYPE': 'simple'})
# 初始化cache,读取配置文件方式配置缓存
cache = CacheHelper(app, config=cache_config)@app.route('/')
def hello_world():  # put application's code herereturn 'Hello World!'# 写入缓存
@app.route('/api/SetCache')
def set_cache():MyService.set_my_cache()return 'success'# 读取缓存
@app.route('/api/GetCache')
def get_cache():my_cache = MyService.get_my_cache()return my_cacheif __name__ == '__main__':app.run()

4.2启动flask项目,先请求写入缓存接口,再请求读取缓存接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能微服务调度:Eureka中的区域感知性配置指南

智能微服务调度:Eureka中的区域感知性配置指南 引言 在构建全球分布式系统时,服务的可用性区域感知性是确保用户体验和系统弹性的关键因素。Eureka,作为Netflix开源的服务发现框架,提供了区域感知性配置,允许服务消费…

ES6 之 Promise 构造函数知识点总结 (四)

Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。 Promise 对象有以下两个特点。 对象的状态不受…

基于swagger插件的方式推送接口文档至torna

目录 一、前言二、登录torna三、创建/选择空间四、创建/选择项目五、创建/选择应用六、获取应用的token七、服务推送7.1 引入maven依赖7.2 test下面按照如下方式新建文件 一、前言 Torna作为一款企业级文档管理系统,支持了很多种接口文档的推送方式。官方比较推荐的…

centos8安装python3.8.19并在python虚拟环境运行程序

一、安装python3.8.19 1.1 下载python 安装包 wget https://www.python.org/ftp/python/3.8.19/Python-3.8.19.tgz 1.2 操作系统安装一些库 yum -y install bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gd…

DP(开篇) | Java | 动态规划相关知识点总结

《代码随想录 - 动态规划理论基础》 简介 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,…

防火墙安全策略与用户认证综合实验

一、实验拓扑 二、实验需求 1.DMZ区内的服务器&#xff0c;办公区仅能在办公时间内<9:00-18:00>可以访问&#xff0c;生产区的设备全天可以访问 2.办公区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3.办公区设备10.0.2.10不充许访问DMZ区的FTP服务器和HT…

【java计算机毕设】个人理财管理系统MySQL springboot html maven小组设计项目源码代码

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】个人理财管理系统MySQL springboot html maven小组设计项目源码代码 2项目介绍 系统功能&#xff1a; 个人理财管理系统包括管理员、用户两种角色。 管理员功能&#xff1a; 用户信息管理&#xff08;…

ns3学习笔记(四):路由概述

基于官网文档的 Routing Overview 部分详细研究一下ns3中路由是怎么工作的 文档链接16.4. Routing overview — Model Library 一、概述 NS3整体的工作架构如下&#xff1a; 路由部分的工作架构如下&#xff1a; 路由部分目前大多数用到的算法都包含在Ipv4RoutingProtocol部分…

将格内多行文字展开成多格

表格的A列是分类&#xff0c;B列由多行文字组成&#xff0c;即分隔符是换行符。 AB1Account NumberInteraction21Jan 1,2023 - Hello.32Jan 2, 2023 - Good morning. Jan 3, 2023 - Good night. Jan 4, 20 Jan 5, 2023 - Good night. Jan 6, 2023 - Good afternoon.43Jan 1,20…

基于Java技术的网上图书商城系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术、SpringBoot框架 工具&#xff1a;Eclipse、Navicat、Maven 系统展示 首页 用户注册界面…

RK3588开发笔记-ES8311音频芯片调试记录

目录 前言 一、ES8311 二、原理图连接 三、内核配置 四、设备树配置 五、设备调试 总结 前言 本篇博客主要记录如何在RK3588平台上调试ES8311音频芯片的过程。这包括硬件连接、内核配置、驱动程序调试和测试步骤。 一、ES8311 ES8311是一款高性能、低功耗的音频Codec,支持…

1996-2023年各省农村居民人均消费支出数据(无缺失)

1996-2023年各省农村居民人均消费支出数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;农村居民人均消费支出 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释&…

视频汇聚平台EasyCVR设备录像回看请求播放时间和实际时间对不上,是何原因?

安防监控EasyCVR视频汇聚平台可提供多协议&#xff08;RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK&#xff09;的设备接入、音视频采集、视频转码、处理、分发等服务&#xff0c;系统具备实时监控、云端录像、回看、告警、平台级联以及多视频流格式分发等视…

Java中的公平锁和非公平锁

1、什么是公平锁和非公平锁 公平锁和非公平锁是指在多线程环境下&#xff0c;如何对锁进行获取的顺序和策略的不同。 公平锁是指多个线程按照申请锁的顺序来获取锁&#xff0c;即先到先得的策略。当一个线程释放锁之后&#xff0c;等待时间最长的线程将获得锁。公平锁的优点是保…

java 中钻石操作符 <> 的使用场景

在 Java 中,<> 符号通常被称为 "钻石操作符" (Diamond Operator),主要用于泛型类型的简化表示。<> 操作符引入于 Java 7,以减少泛型实例化时的冗余代码。以下是 <> 符号在 Java 中的几种主要使用场景: 1. 泛型类型实例化 在 Java 7 之前,实…

Redis主从部署

文章目录 Redis主从部署1.下载安装Redis2.单点双副本主从配置1.修改配置信息2.修改配置文件redis.conf3.拷贝配置文件到每一个实例文件夹里4.修改每一个实例的端口和工作目录5.配置主从关系6.检查效果 3.哨兵模式监控主从1.创建实例目录2.复制配置文件并进行修改3.启动并测试 4…

微信定时推送LeetCode每日一题,再也不怕没人喊你刷题了

前段时间发过一篇关于微信机器人开发的文章&#xff0c;讲述了如何快速开发一个微信机器人&#xff0c;本篇文章就来实现一个最近开发的一个功能案例&#xff0c;在这个案例中会遇到了各种问题&#xff0c;可以帮助大家减少自己去踩坑的时间。通过此案例也可以帮助你去扩想一些…

Profibus_DP转ModbusTCP网关模块连马保与上位机通讯

Profibus转ModbusTCP网关模块&#xff08;XD-ETHPB20&#xff09;广泛应用于工业自动化领域。例如&#xff0c;可以将Profibus网络中的传感器数据转换为ModbusTCP协议&#xff0c;实现数据的实时监控和远程控制。本文介绍了如何利用Profibus转ModbusTCP网关&#xff08;XD-ETHP…

leetcode134双周赛 子数组按位与值为 K 的数目「动态规划」「位运算」

3209. 子数组按位与值为 K 的数目 题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回 nums 中有多少个子数组满足&#xff1a;子数组中所有元素按位 AND 的结果为 k 思路1:动态规划 打力扣打PTSD了&#xff0c;看什么题都是DP 状态&#xff1a; d p [ i …

c++ 宏和模板

&#xff08;1&#xff09;宏的应用 宏定义可以实现类似于函数的功能&#xff0c;但是它终归不是函数&#xff0c;而宏定义中括弧中的“参数”也不是真的参数&#xff0c;在宏展开的时候对 “参数” 进行的是一对一的替换。 assert() 断言 断言&#xff0c;是宏&#xff0c;…