docs: clarify system python 3.8 usage
This commit is contained in:
@@ -26,8 +26,9 @@
|
|||||||
|
|
||||||
## 当前事实
|
## 当前事实
|
||||||
|
|
||||||
- Python 版本目标:Python 3.8。
|
- Python 版本目标:当前系统 Python 3.8,不创建虚拟环境。
|
||||||
- Web 框架目标:Flask 3.0.3。
|
- Web 框架目标:Flask 3.0.3。
|
||||||
|
- 依赖管理:T-001 创建 `requirements.txt`,使用 `python -m pip install -r requirements.txt` 安装到当前系统 Python 3.8 环境。
|
||||||
- 计划使用 Redis 保存 CHIS 会话缓存。
|
- 计划使用 Redis 保存 CHIS 会话缓存。
|
||||||
- 当前已有资料:`reverse_file/` 下的 CHIS 前端脚本、schema 和 HAR。
|
- 当前已有资料:`reverse_file/` 下的 CHIS 前端脚本、schema 和 HAR。
|
||||||
- 当前已有查询 HAR:`reverse_file/20260704_query_health_check.har`,包含 `getHMNIListOfHTML` 和 `getCheckInfoDetail`。
|
- 当前已有查询 HAR:`reverse_file/20260704_query_health_check.har`,包含 `getHMNIListOfHTML` 和 `getCheckInfoDetail`。
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
| 维度 | 选型 | 状态 | 理由 / 说明 |
|
| 维度 | 选型 | 状态 | 理由 / 说明 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| 运行时 | Python 3.8 | 已定 | 用户指定 |
|
| 运行时 | 当前系统 Python 3.8 | 已定 | 用户指定,不创建虚拟环境 |
|
||||||
| Web 框架 | Flask 3.0.3 | 已定 | 用户指定,适合轻量 API 服务 |
|
| Web 框架 | Flask 3.0.3 | 已定 | 用户指定,适合轻量 API 服务 |
|
||||||
| 数据校验 | 待定,建议 Pydantic v1 或 Marshmallow | 待定 | Python 3.8 下需注意版本兼容 |
|
| 数据校验 | 待定,建议 Pydantic v1 或 Marshmallow | 待定 | Python 3.8 下需注意版本兼容 |
|
||||||
| HTTP 客户端 | 待定,建议 `requests.Session` | 待定 | CHIS 会话 cookie 管理简单稳定 |
|
| HTTP 客户端 | 待定,建议 `requests.Session` | 待定 | CHIS 会话 cookie 管理简单稳定 |
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
## 二、决策记录与演进
|
## 二、决策记录与演进
|
||||||
|
|
||||||
- Flask 3.0.3 + Python 3.8 已定,但 Python 3.8 生命周期已结束;如果部署环境允许,未来建议评估 Python 3.10+。
|
- Flask 3.0.3 + Python 3.8 已定,但 Python 3.8 生命周期已结束;如果部署环境允许,未来建议评估 Python 3.10+。
|
||||||
|
- 本项目使用当前系统 Python 3.8 环境,不创建虚拟环境;依赖仍必须写入 `requirements.txt` 并固定关键版本。
|
||||||
- Redis 是会话缓存核心,不建议把 CHIS 会话保存在进程内存。
|
- Redis 是会话缓存核心,不建议把 CHIS 会话保存在进程内存。
|
||||||
- CHIS public key 从配置文件或环境变量读取;当前不依赖 `/chis/logon/publicKey` 动态获取。
|
- CHIS public key 从配置文件或环境变量读取;当前不依赖 `/chis/logon/publicKey` 动态获取。
|
||||||
- CHIS 登录代码来自 Django 项目参考实现,迁移到 Flask 时只复用登录链路、SM2 算法和请求形状,不复用 Django model/cache。
|
- CHIS 登录代码来自 Django 项目参考实现,迁移到 Flask 时只复用登录链路、SM2 算法和请求形状,不复用 Django model/cache。
|
||||||
@@ -32,7 +33,7 @@
|
|||||||
|
|
||||||
| 用途 | 命令 |
|
| 用途 | 命令 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 安装依赖 | 待定 |
|
| 安装依赖 | `python -m pip install -r requirements.txt` |
|
||||||
| 本地开发 | 待定 |
|
| 本地开发 | 待定 |
|
||||||
| 测试 | 待定 |
|
| 测试 | 待定 |
|
||||||
| 格式化 / 静态检查 | 待定 |
|
| 格式化 / 静态检查 | 待定 |
|
||||||
@@ -46,5 +47,6 @@ Get-ChildItem -Recurse -File
|
|||||||
## 四、依赖纪律
|
## 四、依赖纪律
|
||||||
|
|
||||||
- 新增依赖前先说明用途、替代方案和 Python 3.8 兼容性。
|
- 新增依赖前先说明用途、替代方案和 Python 3.8 兼容性。
|
||||||
|
- 不创建 `.venv`、`venv` 或其他项目虚拟环境目录;如需隔离,必须先更新本文并取得确认。
|
||||||
- 和 CHIS 登录、SM2/RSA/AES 加密相关的依赖必须由真实登录代码驱动,不要凭 HAR 猜;当前 SM2 参考 `hans_chis.sm2.sm2_encrypt`。
|
- 和 CHIS 登录、SM2/RSA/AES 加密相关的依赖必须由真实登录代码驱动,不要凭 HAR 猜;当前 SM2 参考 `hans_chis.sm2.sm2_encrypt`。
|
||||||
- 不允许在代码或 `.env.example` 中写真实 CHIS 地址、账号、密码、Cookie。
|
- 不允许在代码或 `.env.example` 中写真实 CHIS 地址、账号、密码、Cookie。
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| T-001 | 初始化 Flask 项目骨架 | - | Python 3.8 可创建虚拟环境;Flask 3.0.3 依赖固定;本地 health check API 可启动;真实命令同步到技术栈和当前状态 | TODO |
|
| T-001 | 初始化 Flask 项目骨架 | - | 使用当前系统 Python 3.8,不创建虚拟环境;创建 `requirements.txt` 并固定 `Flask==3.0.3`;本地 health check API 可启动;真实命令同步到技术栈和当前状态 | TODO |
|
||||||
| T-002 | 建立基础配置与目录 | T-001 | 目录符合架构文档;配置从环境变量读取;无真实密钥 | TODO |
|
| T-002 | 建立基础配置与目录 | T-001 | 目录符合架构文档;配置从环境变量读取;无真实密钥 | TODO |
|
||||||
| T-003 | 建立最小测试框架 | T-001 | pytest 可运行;至少有 health check 或 app factory 测试 | TODO |
|
| T-003 | 建立最小测试框架 | T-001 | pytest 可运行;至少有 health check 或 app factory 测试 | TODO |
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
- 日期:2026-07-04
|
- 日期:2026-07-04
|
||||||
- 阶段:MVP 起步 / 文档与逆向资料整理
|
- 阶段:MVP 起步 / 文档与逆向资料整理
|
||||||
- 技术栈:目标为 Python 3.8、Flask 3.0.3、Redis;代码尚未初始化
|
- 技术栈:目标为当前系统 Python 3.8、Flask 3.0.3、Redis;代码尚未初始化;不创建虚拟环境
|
||||||
- 生产代码:暂无
|
- 生产代码:暂无
|
||||||
- 测试:暂无
|
- 测试:暂无
|
||||||
- 数据 / 资料:`reverse_file/` 下已有 CHIS HAR、前端脚本和 schema;`D:\hans\chupd\chis\login_client_v2.py` 可作为登录链路参考
|
- 数据 / 资料:`reverse_file/` 下已有 CHIS HAR、前端脚本和 schema;`D:\hans\chupd\chis\login_client_v2.py` 可作为登录链路参考
|
||||||
@@ -37,6 +37,7 @@
|
|||||||
## 已确认技术事实
|
## 已确认技术事实
|
||||||
|
|
||||||
- CHIS public key 可通过配置文件或环境变量提供。
|
- CHIS public key 可通过配置文件或环境变量提供。
|
||||||
|
- 使用当前系统 Python 3.8 环境,不创建虚拟环境;T-001 创建 `requirements.txt` 固定依赖。
|
||||||
- 登录链路参考 `login_client_v2.py`:`myRoles` -> 选择 `责任医生助理` / `责任医生` -> `myApps` -> 拼接 cookie。
|
- 登录链路参考 `login_client_v2.py`:`myRoles` -> 选择 `责任医生助理` / `责任医生` -> `myApps` -> 拼接 cookie。
|
||||||
- SM2 加密参考 `hans_chis.sm2.sm2_encrypt`:`gmssl.sm2.CryptSM2(mode=0)`,返回带 `04` 前缀密文。
|
- SM2 加密参考 `hans_chis.sm2.sm2_encrypt`:`gmssl.sm2.CryptSM2(mode=0)`,返回带 `04` 前缀密文。
|
||||||
- 会话验证可用 `chis.myPageService / getLanderInfo`。
|
- 会话验证可用 `chis.myPageService / getLanderInfo`。
|
||||||
|
|||||||
@@ -43,3 +43,12 @@
|
|||||||
- 阻塞:无。
|
- 阻塞:无。
|
||||||
- 决策:public key 由配置提供;`D:\hans\chupd\chis\login_client_v2.py` 作为登录链路参考但不能原样依赖 Django;保存上报前新增只读体检详情查询阶段;第一版详情查询需要 `healthCheck + phrId + idCard + checkDate`,不假设只传体检 id 即可查询。
|
- 决策:public key 由配置提供;`D:\hans\chupd\chis\login_client_v2.py` 作为登录链路参考但不能原样依赖 Django;保存上报前新增只读体检详情查询阶段;第一版详情查询需要 `healthCheck + phrId + idCard + checkDate`,不假设只传体检 id 即可查询。
|
||||||
- 下一步:T-001 初始化 Flask 项目骨架。
|
- 下一步:T-001 初始化 Flask 项目骨架。
|
||||||
|
|
||||||
|
## 2026-07-04 DOC-003 明确使用系统 Python 3.8
|
||||||
|
|
||||||
|
- 状态:DONE
|
||||||
|
- 变更:更新 `docs/06-tasks.md`、`docs/03-tech-stack.md`、`docs/current-state.md` 和 `README.md`。
|
||||||
|
- 验证:已执行 `rg` 检查 `虚拟环境`、`venv`、`requirements.txt`、`pip install` 等关键词,并执行 `git diff` 确认仅包含系统 Python 3.8 环境决策相关文档变更。
|
||||||
|
- 阻塞:无。
|
||||||
|
- 决策:项目使用当前系统 Python 3.8,不创建虚拟环境;T-001 创建 `requirements.txt` 并固定 `Flask==3.0.3`;依赖安装命令使用 `python -m pip install -r requirements.txt`。
|
||||||
|
- 下一步:T-001 初始化 Flask 项目骨架。
|
||||||
|
|||||||
Reference in New Issue
Block a user