如何从零开始手搓项目
本文尚处于草稿状态,内容可能不完整或存在错误
「从零开始」其实指的是文件结构层面,我们依然要依赖前辈的代码理念。
我们的目标
- 理解 Git 的基本使用
- 熟悉 Python 项目的基本结构(env、PEP8、依赖、函数设计)
- VS Code 的基本使用(调试、Git 集成、Markdown 预览)
开始之前
动脑思考
我们的完整项目文件夹内将会有以下文件夹和文件:
.gitignore
.python-version
pyproject.toml
uv.lock
.env.example
.env
README.md
动手操作
uv init szu-venue-helper检查环境
Write-Host "【代理环境变量】"; $env:http_proxy; $env:https_proxy; `
Write-Host "`n【Git 版本】"; git --version; `
Write-Host "`n【Python 版本】"; python --version; `
Write-Host "`n【pip 版本】"; pip --version我们需要确保:
- 启用了终端代理,它能够加速我们后续的依赖安装和代码拉取
- 安装了 Git,将引入版本管理的理念
如果没有意外,我们应该能够在终端看到类似如下的输出
具体的端口号、版本号以及路径等信息可能因人而异:
【代理环境变量】
http://127.0.0.1:7897
http://127.0.0.1:7897
【Git 版本】
git version 2.53.0.windows.2
【Python 版本】
Python 3.14.3
【pip 版本】
pip 25.3 from C:\Users\ztm0929\scoop\apps\python\current\Lib\site-packages\pip (python 3.14)mkdir next-venue-helper
cd next-venue-helperREADME.md(自述文件)是开源项目的门面,好的自述文件能够让用户快速了解项目的功能和使用方法。
# Next Venue Helper
This is a simple venue booking helper for Python.会用到的网络接口
- https://ehall.szu.edu.cn/qljfwapp/sys/lwSzuCgyy/sportVenue/getSportVenueData.do
- https://ehall.szu.edu.cn/qljfwapp/sys/lwSzuCgyy/sportVenue/getTimeList.do
- https://ehall.szu.edu.cn/qljfwapp/sys/lwSzuCgyy/modules/sportVenue/getOpeningRoom.do
- https://ehall.szu.edu.cn/qljfwapp/sys/lwSzuCgyy/sportVenue/insertVenueBookingInfo.do
总结回顾
Git 只记三条命令
Git 非常强大也非常复杂,编程十年的老手可能也会感到困惑,我们作为小白只需要记住三条命令:
git clone <repo_url>:从远程仓库克隆代码到本地git add <file>:将修改的文件添加到暂存区git commit -m "message":将暂存区的修改提交到本地仓库,并附上提交信息
理解网络请求
GET 请求是向服务器请求数据,POST 请求是向服务器提交数据。我们在后续的自动购票脚本中会大量使用这两种请求来与订票系统进行交互。
Python 项目结构(uv)
uv 是一个现代的 Python 包管理工具,它简化了虚拟环境和依赖管理的过程。 在 uv 管理的项目中,我们通常会看到以下几个文件和目录:
venv/:虚拟环境目录,用于隔离项目的 Python 依赖README.md:项目自述文件,介绍项目功能和使用方法main.py:项目的主入口文件,包含核心逻辑requirements.txt:列出项目依赖的 Python 包及其版本(如果使用 uv,这个文件可能不存在,因为 uv 会直接管理依赖)
函数设计原则
在编写 Python 函数时,我们应该遵循以下设计原则:
- 单一职责原则:每个函数应该只负责一个功能,避免过于复杂
- 明确的输入输出:函数应该有清晰的参数和返回值,便于理解和测试
- 避免副作用:函数应该尽量避免修改全局状态,保持纯函数的特性
VS Code 的基本使用
最后更新于