基于flask框架开发的一个web api
├── app
│ ├── api
│ │ ├── auth.py -验证
│ │ ├── errors.py -定义API错误返回格式
│ │ ├── __init__.py
│ │ └── users.py -路由
│ ├── auth
│ │ ├── forms.py -表单数据验证
│ │ └── __init__.py
│ ├── __init__.py
│ └── models.py -表设计
├── conf -配置文件
│ ├── dev.ini
│ └── testing.ini
├── config.py -读取配置
├── deployment -部署
│ └── supervisor
│ ├── app.conf
│ ├── readme.md
│ └── supervisor.conf
├── README.md
├── requirement.txt -依赖包
├── run.py -主程序
└── start.sh -运行脚本
python 3.6.7
windows下推荐使用cmder 这个工具
C:\Users\Sync\Downloads\cmder
λ python
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
如果你使用的是**python3** 版本,默认是支持虚拟环境
1.执行下面命令:
C:\Users\Sync\Downloads\cmder
λ python -m venv myenv
-m venv 使用venv模块
myenv 创建一个虚拟环境,名字教myenv
2.会默认在当前目录创建myenv 目录
输入下面的命令来激活虚拟环境:
λ myenv\Scripts\activate.bat
执行完成后会变成这样:
C:\Users\Sync\Downloads\cmder
(myenv) λ
在这个环境里面就可以做任何事情
安装模块
pip install flask
也可以执行相关程序
输入deactivate.bat 命令就回到了普通的环境
简单web服务
对想要熟悉flask 应用的人有帮助
pip install -r requirement.txt
注意:数据库需要手动创建
命令顺序是:
flask db init #创建新的迁移存储库
flask db migrate #生成一个新的修订版本
flask db upgrade #创建到数据库
[jian@laptop apiserver]$ pwd
/home/jian/prj/python/apiserver
[jian@laptop apiserver]$ flask db init
Creating directory /home/jian/prj/python/apiserver/migrations ... done
Creating directory /home/jian/prj/python/apiserver/migrations/versions ... done
Generating /home/jian/prj/python/apiserver/migrations/alembic.ini ... done
Generating /home/jian/prj/python/apiserver/migrations/env.py ... done
Generating /home/jian/prj/python/apiserver/migrations/script.py.mako ... done
Generating /home/jian/prj/python/apiserver/migrations/README ... done
Please edit configuration/connection/logging settings in
'/home/jian/prj/python/apiserver/migrations/alembic.ini' before proceeding.
[jian@laptop apiserver]$ flask db migrate
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.autogenerate.compare] Detected added table 'user'
Generating /home/jian/prj/python/apiserver/migrations/versions/20f73d9e757e_.py
... done
[jian@laptop apiserver]$ flask db upgrade
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 20f73d9e757e, empty message
https://www.jianshu.com/p/4b9740551f5c
sh start.sh
[jian@laptop apiserver]$ pwd
/home/jian/prj/python/apiserver
[jian@laptop apiserver]$ gunicorn -b localhost:8000 -w 2 run:app
其中: 第一个 run 指的是 run.py 文件;
第二个指的是 flask 应用的名字,app = Flask(name)
-w 为开启n个进程
- 用户鉴权-基本验证
- 根据不同环境读取不同配置文件
- supervisor部署
- 用户界面
- docker 部署