本仓库用于你从 Java 开发者过渡到 Python 时的系统学习与实战练习,是你的「Python 练功房」。
docs/快速开始与依赖.md:唯一上手入口(环境、依赖、服务启动、常用脚本)docs/architecture.md:微服务架构与调用关系docs/Python学习规划_Java开发者版.md:学习路线与自检清单docs/Java_vs_Python_CheatSheet.md:Java ↔ Python 对照速查docs/文档导航与精简说明.md:保留/归档文档清单docs/查漏补缺清单.md:对照廖雪峰教程的覆盖与缺口- 前端与服务说明:
frontend/README.md、各服务09_项目说明.md
-
docs/docs/Python学习规划_Java开发者版.md:整体学习路线与自检清单(按「语言基础 → 标准库 → Web / 脚本 → 进阶」分周规划)。
-
01.Python语言基础/针对 Java 开发者整理的语法学习笔记与小 demo,覆盖:- 快速上手、变量与数据类型、条件与循环;
- 容器类型、函数、模块与包、异常与文件;
- 面向对象、迭代器与生成器、lambda 与装饰器、命名空间与类型注解;
- 「开发技巧 / 写法优化」中的 pathlib、logging、推导式、解包、EAFP 等 Pythonic 写法;
- 「15_进阶专题」:正则表达式、标准库模块、文件操作、数据序列化、网络编程、多线程与多进程、异步编程入门,每个专题都包含与本仓库项目的对应关系说明和开放式挑战任务。
-
docs/学习规划与参考文档:Python学习规划_Java开发者版.md:整体学习路线与自检清单Java_vs_Python_CheatSheet.md:Java 开发者专属速查对照表- ✅ 正则表达式对比(转义规则、常用模式、高级特性)
- ✅ 并发模型对比(GIL 详解、线程 vs 进程、asyncio vs CompletableFuture)
- ✅ Web 框架对比(Spring Boot vs FastAPI)
- 所有示例代码均可直接运行,经过技术审查确保准确性
-
02.开发环境及框架介绍/
侧重工程化与框架:- 开发工具与交互环境(PyCharm、REPL、Jupyter);
- 虚拟环境与依赖管理(venv / pip / requirements.txt);
- 项目结构与代码组织(推荐的
src/布局思路); - Web 框架概览(Flask / Django / FastAPI)及框架的好处;
- FastAPI 的最小 demo 与常用用法(路由、Pydantic 模型、依赖注入、APIRouter、中间件、测试等);
- 数据分析栈概览(numpy / pandas / 可视化)。
-
03.项目实战/
从易到难的一组小项目,练习「用 Python 解决真实问题」:01_命令行工具_批量重命名文件:Pathlib + argparse;02_日志分析与报表生成:日志解析与 Counter 统计;03_TODO_Web_API_FastAPI:使用 FastAPI + SQLite + SQLAlchemy 的 TODO API;04_小型数据分析项目_销售统计:pandas 读取 CSV 并做聚合统计;05_简单爬虫_新闻标题抓取:requests + BeautifulSoup;06_自动化脚本_日志归档:zip 归档 + 定时任务思路;07_监控数据处理_指标聚合与告警:CSV 指标聚合 + 简单告警规则;08_系统对接_调用Java服务API:Python 网关调用 Java 服务 API。05_简单爬虫_新闻标题抓取:基础版 requests+BS4 示例(教学用)。09_新闻爬虫_Requests_BS4:进阶版,含离线 sample、异步 httpx、限速/robots 检查。
-
rbac_auth_service/
独立的 RBAC 认证与权限服务示例(FastAPI + SQLAlchemy + JWT + Redis 可选):- 可单独运行,作为「真实项目雏形」或通用用户/权限模块的起点;
- 详见
rbac_auth_service/09_项目说明.md。
-
frontend/纯静态前端页面目录:index.html:学习导航主页,包含章节导航和在线 Python 执行器(基于 Pyodide)login.html:RBAC 登录页面,使用 OAuth2 密码模式认证admin.html:RBAC 管理后台,支持用户/角色/权限管理和审计日志查看log-detective.html:日志侦探工具,通过网关调用日志分析服务- 详见
frontend/README.md
-
integration_gateway_service/通用 HTTP 网关服务(FastAPI + httpx),演示:- JWT Token 验证与转发
- 统一响应格式包装
- 后端服务代理调用
-
backend_user_order_service/Python 后端用户与订单示例服务(FastAPI),提供:- 用户查询接口
- 订单创建接口
- 配合网关服务演示完整调用链
-
log_audit_service/审计日志服务(FastAPI),用于:- 接收和存储操作审计日志
- 提供日志查询接口
- 配合 admin.html 展示审计记录
-
log_detective_service/日志侦探服务(FastAPI),专注于日志分析与安全检测:- 正则表达式实战应用(IP 提取、日志级别识别)
- 安全编程实践(输入限制、ReDoS 防护)
- 内存处理,不持久化原始日志
- 配合 log-detective.html 提供日志分析功能
- 详见
log_detective_service/09_项目说明.md
-
网关_RBAC_后端联调说明.md五服务联调指南,包含完整的端到端练习流程。
本仓库包含 5 个微服务 和 前端页面集合,演示完整的认证、网关、审计和业务服务调用链路。
前端 (static, 5500)
+----------------------------------------------------+
| index.html login.html admin.html log-detective.html
+--------+-----------+-----------+-------------------+
| | |
| | | 审计日志查询
| 登录/鉴权 v
| | +-------------------------+
| +--> | log_audit_service :8002 |
| | 审计日志存储/查询 |
| +------------+------------+
v ^
+----------------------------+ |
| rbac_auth_service :8001 | | 审计日志上报
| 认证/授权/签发 JWT +---------+
+----------------------------+
log-detective.html
|
| /gateway/log-detective/analyze (携带 JWT)
v
+------------------------------+
| integration_gateway_service |
| :8000 |
| - 校验 JWT |
| - 统一转发/统一响应包装 |
+-----------+------------------+
| \
/api/* | \ 日志分析转发
v v
+-------------------------+ +------------------------+
| backend_user_order_ | | log_detective_service |
| service :9000 | | :9003 |
| 用户/订单示例服务 | | 日志分析(内存计算) |
+-------------------------+ +------------------------+
教学要点:
- login.html / admin.html:演示"前端直接调用认证服务 + 审计服务"
- log-detective.html:演示"前端 → 网关 → 专用分析服务"的网关转发模式
- integration_gateway_service:演示"JWT 校验 + 下游服务代理 + 审计日志上报"
详细架构说明见
docs/architecture.md
目标:建立准确的 Python 心智模型,避免 Java 思维定式
-
快速启动(必读)
- 📖 阅读
docs/Java_vs_Python_CheatSheet.md,建立对比认知 - 📖 阅读
docs/Python学习规划_Java开发者版.md,了解整体路线
- 📖 阅读
-
语法基础(1-10章)
- 按顺序完成
01.Python语言基础前 10 章 - 每章包含:📖 文档 + 💻 demo + ✏️ practice
- 运行示例:
python 01.Python语言基础/01_快速上手与基本语法/demo_hello.py python 01.Python语言基础/02_变量_数据类型_运算符/practice_types.py
- 按顺序完成
-
Pythonic 写法(11-14章)
- 重点:推导式、解包、上下文管理器、装饰器
- 对比:Java Stream API vs Python 推导式
- 练习:用 Pythonic 方式重写 Java 代码片段
目标:掌握 Python 项目开发工具链
-
开发环境配置
- 📖 阅读
02.开发环境及框架介绍.md - 实践:虚拟环境、依赖管理、项目结构
- 📖 阅读
-
Web 框架入门
- 对比学习:Spring Boot vs FastAPI
- 运行最小示例:
cd 03.项目实战/03_TODO_Web_API_FastAPI uvicorn app.main:app --reload # 访问 http://127.0.0.1:8000/docs
目标:掌握 Python 特有的高级特性
📚 Chapter 15 进阶专题现状:
| 专题 | 完成度 | 挑战任务 | 学习建议 |
|---|---|---|---|
| ✅ 正则表达式 | 100% | 4个(初级→综合) | 先学 Java 对比,再做日志分析器 |
| ✅ 标准库模块 | 100% | - | 重点:collections、itertools、functools |
| ✅ 文件操作 | 100% | - | 对比 Java NIO,学习 pathlib |
| ✅ 数据序列化 | 100% | - | JSON、pickle、dataclass |
| ✅ 网络编程 | 100% | - | socket 基础 + HTTP 客户端 |
| ✅ 多线程与多进程 | 100% | 4个(初级→综合) | 重点:GIL 理解,先看对比文档 |
| ✅ 异步编程 | 100% | - | asyncio vs CompletableFuture |
推荐学习顺序:
-
正则表达式(必学)
- 📖 阅读
Java_vs_Python_CheatSheet.md#1-正则表达式对比 - 💻 完成挑战 1:智能日志分析器
- 🎯 应用:
03.项目实战/02_日志分析与报表生成
- 📖 阅读
-
并发模型(重点)
- 📖 阅读
Java_vs_Python_CheatSheet.md#2-并发模型对比 ⚠️ 理解 GIL:CPU密集 vs IO密集的不同选择- 💻 完成挑战 1-2:爬虫性能对比 + 日志分析器
- 🎯 应用:
integration_gateway_service(异步架构)
- 📖 阅读
-
异步编程(现代 Python 核心)
- 📖 学习
15_进阶专题/07_异步编程入门 - 对比:asyncio vs Java CompletableFuture
- 🎯 应用:所有微服务的
async def端点
- 📖 学习
选择适合你的实战路线:
🔹 路线 A:Web 后端开发者
1. TODO API (FastAPI 基础)
↓
2. RBAC 认证服务 (JWT + 权限控制)
↓
3. 四服务联调 (完整微服务体验)
↓
4. 挑战:实时数据流处理引擎
🔹 路线 B:脚本与自动化
1. 命令行工具 (argparse + pathlib)
↓
2. 日志分析与归档 (正则 + 定时任务)
↓
3. 爬虫 (requests + BeautifulSoup)
↓
4. 挑战:分布式日志分析器
🔹 路线 C:系统对接与集成
1. 调用 Java 服务 API (httpx + 异步)
↓
2. 网关服务 (代理 + 鉴权)
↓
3. 审计日志服务 (事件收集)
↓
4. 挑战:智能任务调度系统
微服务全链路实战:
- 启动 4 个服务 + 前端(见下方快速启动)
- 完成端到端练习:
- 用户登录 (
login.html) - 管理后台操作 (
admin.html) - 网关调用后端服务
- 审计日志查看
- 用户登录 (
- 📖 详见
网关_RBAC_后端联调说明.md
开放式挑战完成清单:
- 智能日志分析器(正则)
- 配置文件校验器(正则)
- 智能文本脱敏引擎(正则)
- 网页爬虫性能对比(并发)
- 分布式日志分析器(并发)
- 智能任务调度系统(并发)
- 实时数据流处理引擎(综合)
- ❌ 不要找"Python 版的 Spring Boot"
- ✅ 理解 Python 的"简洁哲学"和"Duck Typing"
- ✅ 接受"无需编译"和"动态类型"(但要善用类型提示)
| 场景 | Java | Python | 参考章节 |
|---|---|---|---|
| 正则转义 | "\\d+" |
r"\d+" |
对比文档§1 |
| CPU并行 | 多线程 | 多进程 | 对比文档§2 |
| IO并发 | ExecutorService | asyncio | Chapter 15.7 |
| Web框架 | Spring Boot | FastAPI | 对比文档§3 |
| 依赖注入 | @Autowired | Depends() | 02章§4 + 对比文档§3.4 |
- GIL 陷阱:CPU 密集任务不要用多线程,必须用多进程
- 可变默认参数:
def func(items=[])是共享的,会导致诡异bug - 浅拷贝问题:嵌套列表需要
copy.deepcopy() - 异常处理:Python 推崇 EAFP(先做后处理),而非 LBYL(先检查后做)
框架相关内容主要集中在:
- 文档层面:
02.开发环境及框架介绍/02.开发环境及框架介绍.md的「04_Web 框架概览与 FastAPI 入门」; - 实战层面:
03.项目实战/03_TODO_Web_API_FastAPI:完整的 REST API 项目骨架(路由拆分、数据库、Pydantic 模型等);03.项目实战/08_系统对接_调用Java服务API:Python 网关调用 Java 系统接口的示例。
你可以直接运行以下示例体验框架的好处(自动路由、Swagger 文档、依赖注入等):
# 运行 TODO Web API(FastAPI + SQLite)
pip install fastapi "uvicorn[standard]" sqlalchemy
cd 03.项目实战/03_TODO_Web_API_FastAPI
uvicorn app.main:app --reload# 运行调用 Java 服务的网关示例(FastAPI + requests)
pip install fastapi "uvicorn[standard]" requests
cd 03.项目实战/08_系统对接_调用Java服务API
uvicorn api_gateway_example:app --reload访问 http://127.0.0.1:8000/docs 即可在浏览器中通过 Swagger UI 调试接口。
本仓库包含 5 个可联调的微服务,演示完整的认证 → 网关 → 后端 → 审计 → 日志分析链路:
# 终端 1:RBAC 认证服务 (端口 8001)
python rbac_auth_service/init_rbac_data.py
uvicorn rbac_auth_service.app.main:app --reload --port 8001
# 终端 2:后端用户订单服务 (端口 9000)
uvicorn backend_user_order_service.app.main:app --reload --port 9000
# 终端 3:网关服务 (端口 8000)
uvicorn integration_gateway_service.app.main:app --reload --port 8000
# 终端 4:审计日志服务 (端口 8002)
uvicorn log_audit_service.app.main:app --reload --port 8002
# 终端 5:日志侦探服务 (端口 9003)
uvicorn log_detective_service.app.main:app --reload --port 9003
# 终端 6:前端静态服务 (端口 5500)
cd frontend && python -m http.server 5500启动后访问:
- 前端登录:
http://127.0.0.1:5500/login.html(用户名admin,密码admin123) - 管理后台:
http://127.0.0.1:5500/admin.html - 日志侦探:
http://127.0.0.1:5500/log-detective.html - 各服务 API 文档:
http://127.0.0.1:<端口>/docs
详细联调流程见 网关_RBAC_后端联调说明.md。
更多框架常用写法(路径参数、查询参数、请求体验证、依赖注入、APIRouter、中间件、后台任务、测试等),请参考:
02.开发环境及框架介绍/02.开发环境及框架介绍.md中 FastAPI 小节;03.项目实战/03_TODO_Web_API_FastAPI/03_项目说明.md中对项目结构的说明。
在项目根目录执行:
cd /Users/xrj/PycharmProjects/learn
python -m venv .venv
source .venv/bin/activate # macOS / Linux激活成功后,终端前缀会变成类似:
(.venv) xrj@xxx learn %- 打开
Settings / Preferences - 进入:
Project: learn→Python Interpreter - 选择
Existing environment,指向:
/Users/xrj/PycharmProjects/learn/.venv/bin/python - 保存后,运行代码时会自动使用虚拟环境。
01.Python语言基础 目录下每个章节都包含完整的学习材料:
01.Python语言基础/
├── 01_快速上手与基本语法/
│ ├── 01_快速上手与基本语法.md # 章节说明文档
│ ├── demo_hello.py # 演示代码
│ └── practice_basic_io.py # 练习代码
├── 02_变量_数据类型_运算符/
│ ├── 02_变量_数据类型_运算符.md
│ ├── demo_types_ops.py
│ └── practice_types.py
...
├── 14_开发技巧_写法优化/
│ ├── 01_字符串格式化_f_string/
│ ├── 02_推导式_列表字典集合/
│ └── ...
└── 15_进阶专题/ # 进阶主题
├── 01_正则表达式/ # 含与项目对应关系
├── 02_标准库常用模块/
├── 03_文件与目录操作/
├── 04_数据序列化/
├── 05_网络编程基础/
├── 06_多线程与多进程/
├── 07_异步编程入门/
└── 15_进阶专题.md # 综合实战练习
- 阅读文档 → 先看章节的
.md文件,了解知识点 - 运行demo → 执行
demo_xxx.py查看演示效果 - 完成练习 → 参考
practice_xxx.py完成练习题 - 实战应用 → 在
03.项目实战中应用所学知识
项目实战部分包含完整的测试用例:
# 运行所有测试
pytest 03.项目实战/
# 运行特定项目测试
pytest 03.项目实战/03_TODO_Web_API_FastAPI/test_todo_api.py当前仓库的学习示例主要放在 01.* 与 03.* 目录中,方便按章节与项目管理。
如果你更习惯「真实项目」的工程化结构,可以在此基础上另外创建:
src/:放置自己整理的通用库或更完整的项目代码,例如:src/learn_py_basics/:把基础语法练习整理成可复用模块;src/api_fastapi_demo/:提炼属于自己的 FastAPI 脚手架。
tests/:使用pytest编写单元测试或接口测试:tests/test_*.py中调用03.项目实战里的代码进行自动化校验。
这两部分在 docs/Python学习规划_Java开发者版.md 与
02.开发环境及框架介绍/02.开发环境及框架介绍.md 中都有工程化结构建议,可按需采纳。
.gitignore:本仓库已为 Python 项目添加常用忽略规则(见根目录.gitignore文件),避免提交虚拟环境、缓存文件等。LICENSE:开源协议类型(如 MIT、Apache-2.0 等)会影响项目的开源方式和使用限制,建议你先想清楚是否要对外开源、采用哪种协议,再创建对应的LICENSE文件;如果需要,我可以根据你的选择生成完整的 LICENSE 文件内容。