如何用rflask快速初始化Flask Restful项目

如何用rflask快速初始化Flask Restful项目

说明

多啰嗦两句

我们在创建flask项目的时候,使用pycharm创建出来的项目比较简陋,而且随着项目的功能完善,项目目录结构会比较多,多个项目结构又不统一,熟悉项目需花费时间比较多,项目发布配置又需要自己重新写一套。本文章是针对Flask Restful Api项目进行的快速初始化,对于没有前后端分离的Flask项目也可作为参考。

安装rflask

pip安装:

pip install rflask

下载源码安装:

源码地址:https://github.com/Deacone/rflask

依次执行命令:

$ git clone https://github.com/Deacone/rflask
$ cd rflask
$ python setup.py install

检验是否安装成功

$ rflask --help
Usage: rflask [OPTIONS] COMMAND [ARGS]...

  A general utility script to init flask restful project.

  Example:

  $ rflask init

Options:
  --version
  --help     Show this message and exit.

Commands:
  init  Init restful project.

or

$ rflask --version
1.0.8

初始化项目

$ rflask init
 * project_name: [flask-restful-api-20200125-090404] <your_project_name>
 * author: [Deacon] <your_name>
 * author_email: [] <your_email>
 * description: [Flask restful api project.] <project_description>
...
...
Create file /Users/donghp/Downloads/Git_doc/PythonProject/init-flask-restful-api/flask-restful-api-20200125-090404/supervisord_example.conf

Done.

初始化完目录结构如下:

.
    ├── applications
    │?? ├── test
    │?? │?? ├── README.rst
    │?? │?? ├── __init__.py
    │?? │?? ├── models.py
    │?? │?? ├── urls.py
    │?? │?? └── views.py
    │?? ├── user
    │?? │?? ├── README.rst
    │?? │?? ├── __init__.py
    │?? │?? ├── models.py
    │?? │?? └── views.py
    │?? └── __init__.py
    ├── enums
    │?? └── __init__.py
    ├── exceptions
    │?? ├── __init__.py
    │?? └── project_excepions.py
    ├── flask_ext
    │?? ├── __init__.py
    │?? └── logger.py
    ├── logs
    ├── requirements
    │?? ├── dev.txt
    │?? └── prod.txt
    ├── scripts
    │?? └── __init__.py
    ├── utils
    │?? ├── __init__.py
    │?? └── commands.py
    ├── Dockerfile
    ├── LICENSE
    ├── Pipfile
    ├── README.rst
    ├── __init__.py
    ├── app.py
    ├── autoapp.py
    ├── compat.py
    ├── database.py
    ├── docker-compose.yml
    ├── extensions.py
    ├── gunicorn.conf.py
    ├── gunicorn_example.conf.py
    ├── settings.py
    ├── setup.py
    ├── supervisord.conf
    └── supervisord_example.conf

项目结构说明:

目录

  • applications:app应用,包含了models、urls、views,app的数据结构、url映射、视图函数都是在这里完成的
  • enums: 系统枚举模块
  • exceptions: 系统异常模块
  • flask_ext: 自定义flask扩展模块
  • logs: 系统log保存
  • scripts: 系统脚本模块
  • utils: 工具模块

文件

  • .env: 系统环境变量配置
  • Dockerfile: 构建docker使用的文件
  • LICENSE: 开源协议,默认MIT
  • Pipfile: pipenv安装包依赖文件
  • README.rst: 文档
  • init.py:
  • app.py: flask 入口文件
  • autoapp.py: flask工厂文件
  • compat.py: 兼容py2文件
  • database.py: 数据库数据处理文件
  • docker-compose.yml: docker-compose 配置文件
  • extensions.py: flask扩展应用初始化文件
  • gunicorn.conf.py: gunicorn配置文件
  • settings.py: 系统配置文件
  • setup.py: 打包配置文件
  • supervisord.conf: supervisor配置文件

开发环境初始化

$ cd your_project
$ pip install pipenv
$ pipenv install --dev
$ pipenv run python app.py

说明:如果已经安装了pipenv,就不需要第二步了。

如果不使用pipenv管理虚拟环境,则执行下面的命令:

$ cd your_project
$ pip3 install -r requirements/dev.txt
$ python3 app.py

同步db 数据结构

$ flask db init
$ flask db migrate
$ flask db upgrade

部署到docker

$ git clone your_project.git
$ cd <your_project>
$ docker-compose up

Enjoy your code.