前言
Python必学的两大web框架之一Flask,俗称微框架。它只需要一个文件,几行代码就可以完成一个简单的http请求服务。
但是我们需要用flask来提供中型甚至大型web restful api服务的时候就需要我们来规划项目结构。
Django 框架有自身的生成项目结构的命令和生成app的命令,但是Flask没有。
这篇文章主要介绍使用工具帮助我们进行一些Flask rest api项目初始化的工作
cookiecutter-flask-restful 介绍
cookiecutter-flask-restful是一个基于cookiecutter的Flask rest api项目生成器,你可以用它快速生成Flask restful api项目。
目前支持的python版本:3.6 | 3.7 | 3.8
项目特性
Flask应用工厂函数,使用蓝图
集成Flask命令行接口
数据迁移
JWT登录认证
分页工具类
单元测试
使用环境变量配置
集成swagger UI
主要使用的包
Flask
Flask-RESTful
Flask-Migrate
Flask-SQLAlchemy
Flask-Marshmallow
Flask-JWT-Extended
marshmallow-sqlalchemy
passlib
tox
pytest
factoryboy
dotenv
apispec
快速开始
安装cookiecutter
$ pip3 install cookiecutter
创建第一个项目
$ cookiecutter https://github.com/karec/cookiecutter-flask-restful
一路按回车键,就会生成一个新项目。
项目名字暂且叫myproject, app名字暂且叫myapi。
运行项目
如果项目使用了pipenv管理虚拟环境:
安装依赖:
$ cd myproject
$ pipenv install -r requirements.txt
# 进入到虚拟环境
$ pipenv shell
$ pip install -e .
$ myapi db upgrade
$ myapi init
$ myapi --help
启动项目:
$ pipenv run flask run
测试项目:
登