# Python学习仓库 **Repository Path**: xccgitee/python-learning-repository ## Basic Information - **Project Name**: Python学习仓库 - **Description**: python工具应用示例仓库:收藏测试相关demo - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-18 - **Last Updated**: 2026-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python学习仓库 ## 📖 项目介绍 这是一个Python工具应用示例仓库,收集了各种实用的Python项目demo,涵盖了Web服务器、OTA升级、MQTT通信、HTTP服务、WebSocket日志、设备发现、NTP时间同步等多个应用场景。每个项目都是独立的,可以单独运行和学习。 ## 🏗️ 项目结构 ``` python-learning-repository/ ├── 001_OTA/ # OTA固件升级服务器 │ ├── file.py # Flask Web服务器 │ ├── templates/ # HTML模板 │ ├── file/ # 固件文件存储 │ ├── dist/ # 打包后的可执行文件 │ └── 使用说明.txt # 使用说明 ├── 002_mqttOTA/ # MQTT OTA升级管理系统 │ ├── app.py # Flask Web应用 │ ├── models.py # 数据模型 │ ├── config.py # 配置管理 │ ├── templates/ # HTML模板 │ ├── static/ # 静态资源 │ └── data/ # 数据存储 ├── 003_httpServer/ # HTTP POST服务器 │ ├── http_server.py # 主服务器 │ ├── test_client.py # 测试客户端 │ ├── log_viewer.py # 日志查看工具 │ ├── logs/ # 日志文件 │ └── README.md # 详细文档 ├── 004_redirect307/ # HTTP 307重定向服务 │ ├── app.py # Flask重定向服务 │ └── README.md # 详细文档 ├── 005_websocke/ # WebSocket日志推送服务 │ ├── log_server.py # WebSocket服务器 │ └── web/ # Web前端示例 ├── 006_esp32_discovery/ # ESP32设备发现工具 │ ├── app.py # PyQt5桌面应用 │ ├── esp32_discovery/ # 发现模块 │ └── requirements.txt # 依赖包列表 ├── 007_sntp/ # NTP/SNTP时间服务器 │ ├── ntp_server.py # 时间同步服务器 │ └── README.md # 详细文档 ├── proto/ # Protocol Buffers定义 │ └── signal_simulation.proto ├── src/ # gRPC服务源码 │ └── grpc_server/ ├── README.md # 项目总览(本文件) ├── README.en.md # 英文版项目总览 └── PROJECT_STRUCTURE.md # 项目结构详细说明 ``` ## 🚀 快速开始 ### 环境要求 - Python 3.6+ - 各项目具体依赖请查看对应目录下的 `requirements.txt` ### 项目列表 | 项目 | 描述 | 技术栈 | 状态 | |------|------|--------|------| | [001_OTA](./001_OTA/) | 固件远程升级Web服务器 | Flask, HTML | ✅ 完成 | | [002_mqttOTA](./002_mqttOTA/) | MQTT OTA升级管理系统 | Flask, MQTT, WebSocket | ✅ 完成 | | [003_httpServer](./003_httpServer/) | HTTP POST数据接收服务器 | Python标准库 | ✅ 完成 | | [004_redirect307](./004_redirect307/) | HTTP 307重定向服务 | Flask | ✅ 完成 | | [005_websocke](./005_websocke/) | WebSocket中文日志推送服务 | WebSocket, asyncio | ✅ 完成 | | [006_esp32_discovery](./006_esp32_discovery/) | ESP32设备发现工具(Windows) | PyQt5, Zeroconf | ✅ 完成 | | [007_sntp](./007_sntp/) | NTP/SNTP时间同步服务器 | Python标准库 | ✅ 完成 | ## 📋 项目详情 ### 001_OTA - 固件升级服务器 - **功能**: 提供Web界面进行固件文件上传和管理 - **特性**: 支持多种文件格式,版本管理,文件下载 - **部署**: 可打包为exe文件独立运行 - **文档**: [使用说明](./001_OTA/使用说明.txt) ### 002_mqttOTA - MQTT升级管理 - **功能**: 基于MQTT协议的设备升级管理系统 - **特性**: 设备监控、升级管理、用户认证、数据可视化 - **技术**: Flask + MQTT + WebSocket + CSV数据存储 - **文档**: 详见项目目录 ### 003_httpServer - HTTP数据服务器 - **功能**: 接收设备HTTP POST请求的服务器 - **特性**: 多格式支持、详细日志、请求追踪、跨域支持 - **技术**: Python标准库,无外部依赖 - **文档**: [详细文档](./003_httpServer/README.md) ### 004_redirect307 - HTTP重定向服务 - **功能**: 将POST请求通过HTTP 307重定向到目标URL - **特性**: 保持请求方法和参数不变,适合代理和转发场景 - **技术**: Flask - **文档**: [详细文档](./004_redirect307/README.md) ### 005_websocke - WebSocket日志服务 - **功能**: WebSocket实时推送中文日志 - **特性**: 三级日志(info/warn/error)、彩色控制台输出、支持Web前端订阅 - **技术**: websockets, asyncio - **文档**: 详见项目目录 ### 006_esp32_discovery - ESP32设备发现工具 - **功能**: 本地网络中发现ESP32设备并展示基础信息 - **特性**: mDNS(Zeroconf)自动发现、IP/网关/MAC/型号/版本识别、PyQt5桌面界面 - **技术**: PyQt5, Zeroconf, netifaces - **文档**: [详细文档](./006_esp32_discovery/README.md) ### 007_sntp - NTP/SNTP时间服务器 - **功能**: 响应标准NTP客户端的时间同步请求 - **特性**: 支持NTPv1~v4、SNTP兼容、非特权端口、完整时间戳计算 - **技术**: Python标准库(socket, struct, time) - **文档**: [详细文档](./007_sntp/README.md) ## 🛠️ 安装和使用 ### 1. 克隆仓库 ```bash git clone cd python-learning-repository ``` ### 2. 选择项目 每个项目都是独立的,可以单独运行: ```bash # OTA升级服务器 cd 001_OTA python file.py # MQTT OTA管理系统 cd 002_mqttOTA pip install -r requirements.txt python app.py # HTTP POST服务器 cd 003_httpServer python http_server.py # HTTP 307重定向服务 cd 004_redirect307 pip install flask python app.py # WebSocket日志服务 cd 005_websocke pip install websockets python log_server.py -i 0.0.0.0 -p 8080 # ESP32设备发现工具(Windows) cd 006_esp32_discovery pip install -r requirements.txt python app.py # NTP/SNTP时间服务器 cd 007_sntp python ntp_server.py ``` ### 3. 查看文档 每个项目都有详细的文档说明,请查看对应目录下的README或说明文件。 ## 🔧 开发说明 ### 项目特点 - **独立性**: 每个项目都是独立的,可以单独运行 - **实用性**: 所有项目都是实际应用场景的demo - **学习性**: 代码结构清晰,适合学习参考 - **可扩展**: 提供了良好的扩展基础 ### 技术栈 - **Web框架**: Flask - **通信协议**: HTTP, MQTT, WebSocket, NTP - **数据存储**: CSV, JSON, 文件系统 - **前端**: HTML, CSS, JavaScript, PyQt5 - **部署**: PyInstaller打包, Python直接运行 ## 📚 学习资源 ### 相关技术文档 - [Flask官方文档](https://flask.palletsprojects.com/) - [MQTT协议介绍](https://mqtt.org/) - [HTTP协议详解](https://developer.mozilla.org/zh-CN/docs/Web/HTTP) - [Python标准库](https://docs.python.org/zh-cn/3/library/) - [WebSocket协议](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets_API) - [NTP协议规范](https://datatracker.ietf.org/doc/html/rfc5905) ### 项目学习路径 1. **入门**: 从003_httpServer开始,了解HTTP服务器基础 2. **进阶**: 学习001_OTA,掌握Web应用开发 3. **网络协议**: 研究007_sntp,理解二进制协议编解码 4. **实时通信**: 学习005_websocke,掌握WebSocket异步编程 5. **高级**: 研究002_mqttOTA,学习复杂系统设计 6. **桌面应用**: 探索006_esp32_discovery,了解PyQt5网络编程 ## 🤝 参与贡献 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue - 发送邮件 - 项目讨论区 --- **版本**: 1.1.0 **更新日期**: 2026-05-08 **维护者**: Python学习仓库团队