Date | Desc | |
---|---|---|
2020.07.02 | 文档创建 | |
- | ||
- | ||
- | ||
- | ||
- | ||
- |
背景:随着学习Flask的不断深入,我决定通过从零开始,开发一个测试平台作为练手项目,以此来巩固加深学习成果。
经过考虑,最终决定项目将采用前后端分离的方式,接口使用Flask框架开发,代码整体采用 hybird
风格。目前的项目结构如下,虽然还很不完整,但是随着开发的不断深入,项目结构将会逐渐地补充完善,我也会在本文中不断更新记录。
autoline/
- api/ # 资源接口
- external/ # 外部脚本
- logs/ # 日志根目录
- models/ # 模型类
- schemas/ # ORM序列化/反序列化类
- test/ # 单元测试
- utils/ # 通用方法
__init__.py # 工厂函数
code_enum.py # api响应状态码枚举类
config.py # 项目配置类
extensions.py # flask扩展类实例化
.env # 存放敏感信息(如数据库URI,SECRET_KEY等)
.flaskenv # 存放和flask相关的公开环境变量(如FLASK_APP、FLASK_CONFIG等)
.gitignore
Pipfile # 项目依赖
Pipfile.lock
虽然Flask RESTful 开发相关的 extensions 有不少,但是原生Flask对 RESTful 的支持已经做的很好。在我的项目中,刚开始开发接口时曾使用flask-restful
,但是通过一段学习和使用后,我还是觉得flask.views
原生的MethodView
更为方便,所以后续我重写了接口,舍弃了flask-restful.
Pipfile中存放的是项目中使用到的依赖, 后续随着开发的深入,我会持续进行更新,目前内容如下:
[[source]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
name = "tsinghua"
[dev-packages]
watchdog = "*"
[packages]
flask = "~=1.1.2"
jinja2 = "*"
python-dotenv = "~=0.10.3"
python-jenkins = "~=1.6.0"
flask-sqlalchemy = "~=2.4.1"
faker = "~=4.0.0"
pymysql = "~=0.9.3"
flask-httpauth = "~=3.3.0"
flask-cors = "~=3.0.8"
requests = "*"
sentry-sdk = {extras = ["flask"],version = "*"}
flask-marshmallow = "~=0.13.0"
marshmallow-sqlalchemy = "~=0.23.1"
【To Be Continued...】