diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ee3a70b --- /dev/null +++ b/readme.md @@ -0,0 +1,110 @@ +### 目录结构说明 +``` +Mini-12306 +-- app //主要接口业务代码 +---- models //定义了数据库表结构与抽象类方法 +-- logs //日志存储 +-- migrations //执行迁移后的数据库版本文件,请查看Flask-Migrate使用方法。 +-- presenter //渲染文件,用于数据序列化 +-- utils //工具包 +---- response.py //定义返回数据结构及定义状态码 +-- Dockerfile //docker容器化文件 +-- docker-compose.yml //容器编排文件 +``` + +### 开发环境安装 +1. 安装 Python 3.12.x以上版本 +2. 使用 pip 安装项目所需要的包: +``` +cd 12306mini_python +pip config set global.index-url http://mirrors.aliyun.com/pypi/simple +pip config set install.trusted-host mirrors.aliyun.com +pip install -r requirements.txt +``` +3. 安装 PostgreSQL, 并创建数据库 + +根目录下的config.py文件中 SQLALCHEMY_DATABASE_URI 是定义项目连接数据库的地址(包括数据库账号、密码、名称)。 + +连接数据库的密码及数据库均可以自行设定。 + +4. 执行迁移 + +在项目的根目录下执行下列命令,此命令会将数据表生成。 + +注:表的生成逻辑请查看Flask-Migrate使用方法。 +``` +flask db upgrade +``` + +5. 运行项目 +``` +flask run myapp.py +``` + + +### docker部署 + + +1. 找一台Ubuntu服务器,安装docker及docker-compose +2. 在服务器上创建日志文件存储位置(该文件用于 docker-compose 中 volumes 关联) + ``` + mkdir /var/log/mini12306_python + ``` + +3. 构建容器 + ``` + docker-compose build + ``` + + 你可能会遇到build失败的问题。 + + 因为国内的原因无法正常自动下载 postgres 和 redis_alpine 这两个软件。 + + 解决方案如下: + 下载此链接中两个docker软件包至服务器: postgres_15.tar redis_alpine.tar + + https://pan.baidu.com/s/1qMRtQ0Fhy7r5L_58RHe5Fw?pwd=vu3c 提取码: vu3c + + 可以将文件先下载到本机,然后使用scp命令将文件上传至服务器。 + + 文件上传至服务后,cd至文件所在的目录,然后运行下列指令: + + ``` + docker load < postgres_15.tar + docker load < postgres_15.tar + + 然后再执行 docker-compose build + + ``` + +4. 运行容器 +``` +docker-compose run --rm python flask db upgrade +docker-compose up -d +``` + + +--- + +### 扩展使用: Flask-Migrate 使用方法 +首先,初始化 Alembic 目录(migrations/ 文件夹): +``` +flask db init +``` + +当你对模型进行了更改(如添加新表或修改现有表的结构),你可以生成迁移脚本: +``` +flask db migrate -m "Initial migration" +``` +这将根据你定义的模型生成迁移脚本。 + +执行迁移 +``` + flask db upgrade +``` +--- +### 扩展使用:使用 pdb 工具断点调试 + +``` +pdb.set_trace() +``` \ No newline at end of file