# flask-template **Repository Path**: wbdzy/flask-template ## Basic Information - **Project Name**: flask-template - **Description**: forchange - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-08 - **Last Updated**: 2023-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask Template > python flask 基础项目 ## 背景 公司技术栈拓展,部分 web 服务需要用 Python 编写,为了规范项目结构,需要提供一个基础模板项目 - flask: web微框架 - pre-commit集成: 使用git hooks, 在commit代码前检测代码, 保证代码质量 - log: 使用python logger标准库 - restful: 使用flask-restful处理参数的解析与验证 - gevent: 使用gevent和gunicorn部署服务 - pipenv: 使用pipenv管理依赖 - make: 使用makefile编写启动命令 - pytest: 使用pytest测试代码 - flake8: 使用flake8检查代码 - pyjwt: jwt包验证 - requests: 简单http请求 - celery: 定时任务 && 守护进程 - sentry: 错误监控 ## 注意事项!!! ```bash PYTEST_DB_HOST=localhost PYTEST_DB_USERNAME=root PYTEST_DB_PASSWORD=root ``` **请改成本机mysql, 否则如果在线上会将线上mysql相应表删掉.** ## get start 1. clone 项目 ```bash git clone git@git.forchange.cn:common/be-templates/flask-template.git ``` 2. 安装依赖 ```bash pipenv install --dev ``` 3. 安装pre commit git hook ```bash pre-commit install ``` 4. 启动 ```bash make ``` ## 开发 - [编码规范](https://dev.pandateacher.com/matrix-studio/document/standard/python-standard.html) - [代码审查规范](https://dev.pandateacher.com/matrix-studio/document/standard/python-standard.html#review-%E8%A7%84%E8%8C%83) ## 启用测试 1. 使用所有依赖包 ```bash pipenv install --dev ``` 2. 执行测试 ```bash make pytest ``` > 注意本地需要由`ninth_studio`之类库, 并且在执行完成后表会被删除掉 > 建议使用docker的数据库来进行本地自动化测试 ## 文档 [flask-template文档](https://git.forchange.cn/newbility/python-doc/blob/master/flask-template.md) ## CHANGELOG ## v0.4.5 - 修改response类 & 相关单元测试 - 增加生产者实例 & 相关单元测试 ## v0.4.4 - 修复errhandler with gunicorn - .ci-env daemon 命令缺少引号 ## v0.4.3 - 增加exceptions.py 文件 - 修复redis storage单元测试 ## v0.4.2 - 增加issue模板 ## v0.4.1 - 修改reademe上的文档链接 ## v0.4.0 - 跳过pipenv lock的步骤加快代码构建速度 - 将utils.jwt.py中的装饰器移入utils.decorators.py ## v0.3.9 - 修改readme规范链接 ## v0.3.8 - 修改model集成方式 - 修改pytest环境变量 ### v0.3.7 - pre-commit 增加 isort - pre-commit black 增加选项 默认最大长度为120 ### v0.3.6 - 增加config/cache的单元测试 - 部分函数添加`type hint` ### v0.3.5 - 添加black pre-commit - 删除auto-pep8 和 isort hook 因为和black冲突 - ext.py 修改成 extensions.py 原因是名称更加直接 ### v0.3.1 - 添加readme 如何测试文档 ### v0.3.0 - 错误处理方式修改, 使用`errorhandler`来处理除`HTTPExection`之外的异常 - 增加`stage`, `localprod`环境支持