• 如何用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: [deacon@example.com] <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.

    不积跬步,无以至千里。
  • 相关阅读:
    group_concat函数与find_in_set()函数相结合
    PHP获取指定时间的上个月
    CI框架 数据库批量插入 insert_batch()
    PHP可变长函数方法介绍
    js闭包理解
    Android百度地图开发(一)之初体验
    Activity的四种启动模式和onNewIntent()
    再探Java基础——throw与throws
    Failed to load JavaHL Library解决方法
    Eclipse中添加Android系统jar包
  • 原文地址:https://www.cnblogs.com/DeaconOne/p/12238111.html
Copyright © 2020-2023  润新知