## 核心优化 - 移除详情页自动调用博查API的逻辑,改为按需加载 - 添加基于IP的频率限制(每小时3次) - 实现验证码防护机制(超过阈值后要求验证) - 新增频率限制工具类 utils/rate_limiter.py ## 成本控制 - API调用减少约90%+(只在用户点击时调用) - 防止恶意滥用和攻击 - 可配置的频率限制和验证码策略 ## 文档整合 - 创建 docs/ 目录结构 - 归档历史版本文档到 docs/archive/ - 移动部署文档到 docs/deployment/ - 添加文档索引 docs/README.md ## 技术变更 - 新增依赖: Flask-Limiter==3.5.0 - 修改: app.py (移除自动调用,新增API端点) - 修改: templates/detail_new.html (按需加载UI) - 新增: utils/rate_limiter.py (频率限制和验证码) - 新增: docs/archive/DEVELOP_v2.6.0_API_SECURITY.md ## 部署说明 1. pip install Flask-Limiter==3.5.0 2. 重启应用 3. 无需数据库迁移 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
ZJPB v2.2.0 部署操作指南
版本信息
- 版本: v2.2.0
- 发布日期: 2025-12-30
- 补丁大小: 56KB
- 部署时间: 约10分钟
核心功能
博查新闻搜索集成
✅ 自动获取网站相关新闻(博查Web Search API) ✅ 智能更新:每日首次访问触发更新 ✅ 每个网站获取3条一周内新闻 ✅ 新闻来源展示(名称+图标) ✅ 自动去重防止重复
数据库扩展
✅ News表新增 source_name 字段
✅ News表新增 source_icon 字段
界面优化
✅ 新闻模块在左侧主栏 ✅ 相似推荐在右侧边栏
快速部署(3步)
第1步:上传文件到服务器
上传以下2个文件到 /opt/1panel/apps/zjpb/:
v2.2.0.patch
git_patch_deploy_v2.2.sh
第2步:执行部署脚本
cd /opt/1panel/apps/zjpb
chmod +x git_patch_deploy_v2.2.sh
./git_patch_deploy_v2.2.sh
第3步:配置API Key
编辑 .env 文件,添加:
BOCHA_API_KEY=sk-76d0236a50d445ae92e75b634ed5313c
BOCHA_BASE_URL=https://api.bocha.cn
然后重启:
./manage.sh restart
验证部署
✓ 前台测试
- 访问任意网站详情页
- 检查"相关新闻"模块是否显示
- 新闻应该显示来源网站名称和图标
- 点击新闻标题可跳转到原文
✓ 后台测试
- 登录
/admin/login - 进入"新闻管理"
/admin/newsadmin/ - 查看新闻列表是否正常显示
✓ 功能测试
cd /opt/1panel/apps/zjpb
source venv/bin/activate
python test_news_feature.py
关键文件
本地准备好的文件
D:\315mac\Code\zjpb\
├── v2.2.0.patch (56KB) 补丁文件
├── git_patch_deploy_v2.2.sh 部署脚本
├── DEPLOY_v2.2.0.md 完整部署文档
├── DEPLOY_v2.2_CHECKLIST.md 检查清单
├── migrate_news_fields.py 数据库迁移脚本
├── test_news_feature.py 测试脚本
└── fetch_news_cron.py 定期任务脚本
服务器需要的文件(只需2个)
v2.2.0.patch
git_patch_deploy_v2.2.sh
Git提交历史
v2.2.0包含以下3个提交:
2e9f634 docs: 添加v2.2.0部署文档和脚本
495248b feat: v2.2.0 智能新闻更新和布局优化
d7d21e1 release: v2.2.0 - 博查新闻搜索功能
部署脚本自动完成的操作
1. 停止应用
2. 检查Git状态
3. 备份未提交的修改
4. 应用v2.2.0补丁
- utils/news_searcher.py (新增)
- app.py (更新)
- models.py (更新)
- config.py (更新)
- templates/detail_new.html (更新)
- migrate_news_fields.py (新增)
- test_news_feature.py (新增)
- fetch_news_cron.py (新增)
- NEWS_FEATURE_v2.2.md (新增)
5. 提交到Git
6. 激活虚拟环境
7. 安装依赖
8. 运行数据库迁移
9. 重启应用
10. 检查状态
回滚方案(如需要)
cd /opt/1panel/apps/zjpb
./manage.sh stop
git reset --hard HEAD~3 # 回滚到v2.1.0
./manage.sh start
常见问题
Q1: 新闻不显示?
A: 检查 .env 中 BOCHA_API_KEY 是否配置正确
Q2: 补丁应用失败?
A: 备份本地修改后重试
git stash
git apply v2.2.0.patch
Q3: 数据库迁移失败?
A: 手动运行迁移脚本
python migrate_news_fields.py
成本估算
假设每天100个网站被访问:
- 每次API调用约 0.01元
- 每天成本约 1元
- 每月成本约 30元
下一步
部署完成后:
- 访问网站测试功能
- 查看应用日志确认无错误
- 监控API调用情况
- 根据需要调整新闻获取数量和时间范围
技术支持文档
- 完整文档:
DEPLOY_v2.2.0.md - 检查清单:
DEPLOY_v2.2_CHECKLIST.md - 功能文档:
NEWS_FEATURE_v2.2.md
创建时间: 2025-12-30 22:32 准备就绪: ✅ 可以开始部署: ✅