尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

flask:访问redis

flask:访问redis
📅 发布时间:2026/6/19 19:56:05

一,安装第三方库

$ pip3 install Flask-Caching redis

二,代码:

初始化cache

 

import os
from dotenv import load_dotenvfrom flask import Flask,jsonifyfrom flask_sqlalchemy import SQLAlchemyfrom helpers.utils import failed_responsefrom flask_caching import Cache# 加载变量
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path=dotenv_path, verbose=True, override=True)
db_uri = os.getenv("SQLALCHEMY_DATABASE_URI")
print("打印配置项:")
print(db_uri)app = Flask(__name__)# 数据库信息
host = '127.0.0.1'
port = '3306'
database = 'mybase'
username = 'root'
password = 'rootpassword'# 数据库类型+连接数据库的插件,这里使用的pymysql
DB_URI = f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}'
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI# cache的配置
app.config['CACHE_TYPE'] = "redis"
app.config['CACHE_DEFAULT_TIMEOUT'] = 300
app.config['CACHE_REDIS_HOST'] = '127.0.0.1'
app.config['CACHE_REDIS_PASSWORD'] = ''
app.config['CACHE_REDIS_PORT'] = 6379
app.config['CACHE_REDIS_DB'] = 0
app.config['CACHE_KEY_PREFIX'] = ''# db绑定Flask对象
db = SQLAlchemy()
db.init_app(app)# 缓存
cache = Cache(app)from controller.admin import admin
from controller.user import userapp.register_blueprint(admin,url_prefix="/admin")
app.register_blueprint(user,url_prefix="/user")import logging
from logging.handlers import RotatingFileHandler
import tracebackfile_handler = RotatingFileHandler("app_error.log")
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))
app.logger.addHandler(file_handler)
app.logger.setLevel(logging.DEBUG)@app.errorhandler(404)
def page_not_found(error):data = {"status": "failed","code": 500,"msg": "错误的路径"}return jsonify(data), 404@app.errorhandler(Exception)
def handle_exception(error):stack = traceback.format_exc()app.logger.error(f"An error occurred: {str(error)}")app.logger.error(stack)# return "An internal error occurred.", 500return failed_response(500,"An internal error occurred."), 500if __name__ == '__main__':app.run(debug=True)

调用

@user.route("/list/")
@cache.cached(timeout=60)
def user_list():meta = {"title": "用户列表","code": 200,"msg": ""}# 得到数据库中的数据users = User.query.all()for index, user in enumerate(users):if user.id == 2:users[index].city = "沈阳市"return success_response([user.to_json() for user in users])

 

三,测试效果 

从redis查看缓存数据:

27.0.0.1:6379> get "view//user/list/"
"!\x80\x05\x95\xf4\x01\x00\x00\x00\x00\x00\x00\x8c\x0eflask.wrappers\x94\x8c\bResponse\x94\x93\x94)\x81\x94}\x94(\x8c\aheaders\x94\x8c\x1fwerkzeug.datastructures.headers\x94\x8c\aHeaders\x94\x93\x94)\x81\x94}\x94\x8c\x05_list\x94]\x94(\x8c\x0cContent-Type\x94\x8c\x10application/json\x94\x86\x94\x8c\x0eContent-Length\x94\x8c\x03236\x94\x86\x94esb\x8c\a_status\x94\x8c\x06200 OK\x94\x8c\x0c_status_code\x94K\xc8\x8c\x12direct_passthrough\x94\x89\x8c\t_on_close\x94]\x94\x8c\bresponse\x94]\x94C\xec
{\"code\":200,\"data\":[{\"age\":44,\"city\":\"\\u94c1\\u5cad\",\"id\":1,\"nickname\":\"\\u8c22\\u5e7f\\u5764\",\"username\":\"guangkun\"},{\"age\":35,\"city\":\"\\u6c88\\u9633\\u5e02\",\"id\":2,\"nickname\":\"\\u8d75\\u56db\",\"username\":\"zhaosi\"}],\"msg\":\"\",\"status\":\"success\"}\n\x94aub."

 

相关新闻

  • 2025年评价高的冰箱重型滑轨厂家推荐及采购参考
  • 2025年仓储货架厂家十大品牌综合评测:大连名商仓储货架荣登榜首
  • 2025年质量好的防尘四方袋厂家最新权威实力榜

最新新闻

  • 面试被问“你的缺点是什么”,90%的应届生都答错了!(附满分话术)
  • Spring Cloud Alibaba 最佳实践:基于 Spring Boot 4.0 的完整微服务示例项目
  • 三步掌握AI斗地主:如何用DouZero智能助手提升你的游戏胜率
  • 2026山东大学项目实训个人博客(六)
  • DC/DC电源设计实战:从MIC261201选型到PCB布局与热管理全解析
  • 2026济南婚纱摄影选型全指南:行业标准、品牌梯队与合规避坑全解析 - 速递信息

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号