## 核心优化 - 移除详情页自动调用博查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>
256 lines
4.9 KiB
Markdown
256 lines
4.9 KiB
Markdown
# ZJPB v2.3.0 部署清单
|
||
|
||
**当前状态**: ✅ 代码已提交到本地Git,等待推送
|
||
|
||
---
|
||
|
||
## 📋 本地准备完成
|
||
|
||
✅ **代码修改**:
|
||
- models.py - Site模型添加news_keywords字段
|
||
- app.py - 后台表单、API路由、搜索逻辑
|
||
- utils/news_searcher.py - 严格匹配搜索
|
||
- templates/detail_new.html - 刷新按钮和UI
|
||
|
||
✅ **新增文件**:
|
||
- migrate_news_keywords.py - 数据库迁移脚本
|
||
- DEPLOY_v2.3.0.md - 完整部署文档
|
||
- DEPLOY_v2.3_QUICK.md - 快速部署指南
|
||
|
||
✅ **本地测试**:
|
||
- ✅ 数据库迁移成功(4个网站已设置默认关键词)
|
||
- ✅ Flask服务运行正常
|
||
- ✅ 后台管理可访问
|
||
|
||
✅ **Git提交**:
|
||
- Commit: `fdde699` - feat: v2.3.0 - 新闻获取准确性优化
|
||
- Tag: `v2.3.0` - Release v2.3.0: 新闻获取准确性优化
|
||
|
||
---
|
||
|
||
## 🚀 下一步操作(需要你执行)
|
||
|
||
### 第1步:推送代码到远程仓库
|
||
|
||
```bash
|
||
# 在本地项目目录执行
|
||
cd D:\315mac\Code\zjpb
|
||
|
||
# 推送代码(需要输入Git认证)
|
||
git push origin master
|
||
|
||
# 推送标签
|
||
git push origin v2.3.0
|
||
```
|
||
|
||
### 第2步:SSH登录服务器部署
|
||
|
||
```bash
|
||
# SSH登录服务器
|
||
ssh root@your-server
|
||
|
||
# 进入项目目录
|
||
cd /opt/1panel/apps/zjpb
|
||
|
||
# 停止应用
|
||
./manage.sh stop
|
||
|
||
# 拉取最新代码
|
||
git pull origin master
|
||
|
||
# 查看当前版本(应该看到fdde699)
|
||
git log --oneline -3
|
||
|
||
# 激活虚拟环境
|
||
source venv/bin/activate
|
||
|
||
# 运行数据库迁移
|
||
python migrate_news_keywords.py
|
||
|
||
# 重启应用
|
||
./manage.sh restart
|
||
|
||
# 检查状态
|
||
./manage.sh status
|
||
|
||
# 查看日志
|
||
./manage.sh logs
|
||
```
|
||
|
||
### 第3步:验证部署
|
||
|
||
#### 后台验证
|
||
```
|
||
1. 访问:http://zjpb.net/admin/login
|
||
2. 进入:网站管理
|
||
3. 编辑任意网站
|
||
4. 检查:是否有"新闻关键词"字段
|
||
```
|
||
|
||
#### 前台验证
|
||
```
|
||
1. 访问任意网站详情页
|
||
2. 滚动到"相关新闻"模块
|
||
3. 检查:是否有"获取最新资讯"按钮
|
||
4. 点击测试刷新功能
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 部署变更摘要
|
||
|
||
### 数据库变更
|
||
|
||
```sql
|
||
ALTER TABLE sites
|
||
ADD COLUMN news_keywords VARCHAR(200)
|
||
COMMENT '新闻获取关键词(用于精准匹配相关新闻)'
|
||
AFTER features;
|
||
```
|
||
|
||
**影响**:
|
||
- 新增1个字段
|
||
- 约200字节/网站
|
||
- 无性能影响
|
||
|
||
### 代码变更
|
||
|
||
| 文件 | 行数变化 | 说明 |
|
||
|------|---------|------|
|
||
| models.py | +2 | 添加news_keywords字段定义 |
|
||
| app.py | +81 | 后台配置+新API路由 |
|
||
| utils/news_searcher.py | +16 | 支持关键词参数 |
|
||
| templates/detail_new.html | +125 | 刷新按钮+CSS+JS |
|
||
| migrate_news_keywords.py | +114 | 新建迁移脚本 |
|
||
|
||
**总计**:7个文件,+1009行,-8行
|
||
|
||
### API变更
|
||
|
||
**新增**:
|
||
- `POST /api/refresh-site-news/<site_code>` - 前台刷新新闻
|
||
|
||
**修改**:
|
||
- `search_site_news()` - 新增news_keywords参数
|
||
|
||
---
|
||
|
||
## ⚠️ 重要提示
|
||
|
||
### 1. 备份数据库
|
||
|
||
部署前务必备份:
|
||
```bash
|
||
mysqldump -h localhost -u ai_nav -p ai_nav > backup_v2.3_$(date +%Y%m%d).sql
|
||
```
|
||
|
||
### 2. BOCHA_API_KEY配置
|
||
|
||
确认服务器`.env`文件包含:
|
||
```bash
|
||
BOCHA_API_KEY=sk-76d0236a50d445ae92e75b634ed5313c
|
||
BOCHA_BASE_URL=https://api.bocha.cn
|
||
```
|
||
|
||
### 3. 迁移脚本幂等性
|
||
|
||
迁移脚本可以重复执行,会自动跳过已存在的字段。
|
||
|
||
---
|
||
|
||
## 🔍 常见问题
|
||
|
||
### Q1: Git拉取后没有新文件?
|
||
|
||
```bash
|
||
# 检查当前commit
|
||
git log --oneline -1
|
||
|
||
# 应该显示:fdde699 feat: v2.3.0 - 新闻获取准确性优化
|
||
|
||
# 如果不是,强制拉取
|
||
git fetch origin
|
||
git reset --hard origin/master
|
||
```
|
||
|
||
### Q2: 迁移脚本找不到?
|
||
|
||
```bash
|
||
# 确认文件存在
|
||
ls -la migrate_news_keywords.py
|
||
|
||
# 如果不存在,检查git状态
|
||
git status
|
||
|
||
# 拉取特定文件
|
||
git checkout origin/master -- migrate_news_keywords.py
|
||
```
|
||
|
||
### Q3: 后台表单没有新字段?
|
||
|
||
```bash
|
||
# 重启应用清除缓存
|
||
./manage.sh restart
|
||
|
||
# 检查代码是否更新
|
||
grep -n "news_keywords" app.py
|
||
|
||
# 应该看到:1007: 'news_keywords': '新闻关键词',
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 性能监控
|
||
|
||
部署后建议监控:
|
||
|
||
1. **应用启动时间**:应在2-3秒内
|
||
2. **数据库查询性能**:无明显变化
|
||
3. **新闻刷新响应时间**:1-3秒(取决于博查API)
|
||
4. **错误日志**:关注news相关错误
|
||
|
||
```bash
|
||
# 监控日志
|
||
tail -f logs/gunicorn_error.log | grep -i "news\|error"
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 部署完成检查清单
|
||
|
||
**代码部署**:
|
||
- [ ] Git push成功
|
||
- [ ] 服务器Git pull成功
|
||
- [ ] 当前commit是fdde699
|
||
|
||
**数据库迁移**:
|
||
- [ ] migrate_news_keywords.py执行成功
|
||
- [ ] sites表有news_keywords字段
|
||
- [ ] 现有网站已设置默认关键词
|
||
|
||
**应用运行**:
|
||
- [ ] manage.sh status显示运行中
|
||
- [ ] 无错误日志
|
||
- [ ] 前后台访问正常
|
||
|
||
**功能验证**:
|
||
- [ ] 后台可编辑新闻关键词
|
||
- [ ] 前台显示刷新按钮
|
||
- [ ] 刷新功能正常工作
|
||
|
||
---
|
||
|
||
## 📞 技术支持
|
||
|
||
如遇问题:
|
||
|
||
1. **查看日志**:`./manage.sh logs`
|
||
2. **检查文档**:`DEPLOY_v2.3.0.md`(完整版)
|
||
3. **快速参考**:`DEPLOY_v2.3_QUICK.md`(精简版)
|
||
|
||
---
|
||
|
||
**清单版本**: v1.0
|
||
**创建时间**: 2025-12-31
|
||
**预计部署时间**: 5-10分钟
|