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

AI掘金头条新闻系统 (Toutiao News)-缓存新闻列表

AI掘金头条新闻系统 (Toutiao News)-缓存新闻列表
📅 发布时间:2026/7/5 8:35:42

1.cache/news_cache.py

NEWS_LIST_PREFIX = "news_list:" # 写入缓存-新闻列表 key = news_list:分类id:页码:每页数量 + 列表数据 + 过期时间 async def set_cache_news_list(category_id: Optional[int], page: int, size: int, news_list: List[Dict[str, Any]], expire: int = 1800): category_part = category_id if category_id is not None else "all" key = f"{NEWS_LIST_PREFIX}{category_part}:{page}:{size}" return await set_cache(key, news_list, expire) # 读取缓存-新闻列表 key = news_list:分类id:页码:每页数量 async def get_cache_news_list(category_id: Optional[int], page: int, size: int): category_part = category_id if category_id is not None else "all" key = f"{NEWS_LIST_PREFIX}{category_part}:{page}:{size}" return await get_json_cache(key)

2. 改造crud/news.py

# 获取新闻列表 async def get_news_list( db: AsyncSession, category_id: int, skip: int = 0, limit: int = 10 ): # 先尝试从缓存获取新闻列表 # 跳过的数量skip = (页码 - 1) * 每页数量 -> 页码 = 跳过的数量 // 每页数量 + 1 # await get_cache_news_list(分类id, 页码, 每页数量) page = skip // limit + 1 cached_list = await get_cache_news_list(category_id, page, limit) # 缓存数据 json if cached_list: # return cached_list # 要的是 ORM return [News(**item) for item in cached_list] # 查询的是指定分类下的所有新闻 stmt = select(News).where(News.category_id == category_id).offset(skip).limit(limit) result = await db.execute(stmt) news_list = result.scalars().all() # 写入缓存 if news_list: # 先把 ORM 数据 转换 字典才能写入缓存 # ORM 转成 Pydantic,再转为 字典 # by_alias=False 不适用别名,保存 Python 风格,因为 Redis 数据是给后端用的 news_data = [ NewsItemBase.model_validate(item).model_dump(mode="json", by_alias=False) for item in news_list ] await set_cache_news_list(category_id, page, limit, news_data) return news_list

相关新闻

  • 如何在5分钟内通过手机号码实现精准地理位置定位的完整指南
  • 如何在Blender中完美导入导出3MF格式:3D打印工作流终极指南
  • KPL-gmssl安装教程:5分钟在华为鲲鹏服务器上搭建加密环境

最新新闻

  • 冷热电联供楼宇微网调度Matlab源码:用空调温控弹性当虚拟电池,协同光伏与电价做最优运行
  • 四款旗舰大模型技术选型实战:开源协议、激活参数与上下文工程
  • Windows命令行学生信息管理工具:C语言实现的完整学籍管理系统(含运行程序、源码与设计文档)
  • uiautomator2图像识别性能优化:从原理到实战的300%提速指南
  • ARC芯片如何突破机器人算力瓶颈
  • Android本地唤醒+云端识别双通路语音助手源码,支持自定义热词与多轮指令响应

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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