# 虚拟环境
# apt-get install python3-venv
python3 -m venv venv
# 激活
. venv/bin/activate
# 安装依赖
# pip install Flask
# pip install Flask-SQLAlchemy
# pip install flask-marshmallow
# pip install marshmallow-sqlalchemy
# pip install PyJWT
# pip install schema
# pip install pymysql
pip install -r requirements.txt
# 环境变量
export FLASK_APP=flaskr
# export FLASK_ENV=production # 缺省值
# export FLASK_ENV=testing
export FLASK_ENV=development
# 初始化
flask init-db
# 运行
flask run
# 打开一个 Shell
flask shell
# 导出依赖
pip freeze > requirements.txt
# 依赖
pip install gunicorn
pip install gevent
# 如有需要
# 启动一个数据库
sudo docker-compose -f docker-compose.mysql.yml up -d
# 运行
# gunicorn main:app -w 4 -e FLASK_ENV=production -b :8000
gunicorn -c gunicorn.py main:app
# 编辑环境变量
vi .env.prod
# 启动
docker-compose up -d
# 初始化数据
docker-compose exec web flask init-db
# 测试
curl 127.0.0.1:8000
curl -H "Content-Type: application/json" -d '{"userName":"gabe","password":"123456"}' 127.0.0.1:8000/login/account
# 进入容器
docker-compose exec web bash
docker-compose exec db bash
- (已解决,存小小问题)
Relationships
问题: 参考 - 部分错误无法被
_handle_exception
捕获,而是被内置处理器捕获了 - (已解决)暂无优雅的数据校验,
sqlalchemy
推荐的校验方式很繁琐
├── docker-compose.mysql.yml
├── docker-compose.yml
├── Dockerfile
├── flaskr
│ ├── config.py
│ ├── handler
│ │ ├── Auth.py
│ │ ├── Group.py
│ │ ├── __init__.py
│ │ ├── Login.py
│ │ ├── Menu.py
│ │ ├── Role.py
│ │ ├── UserGroup.py
│ │ └── User.py
│ ├── __init__.py
│ ├── model
│ │ ├── Auth.py
│ │ ├── Base.py
│ │ ├── Group.py
│ │ ├── __init__.py
│ │ ├── Menu.py
│ │ ├── Role.py
│ │ ├── UserGroup.py
│ │ └── User.py
│ ├── router
│ │ └── __init__.py
│ └── utils
│ ├── auth.py
│ ├── bp.py
│ ├── cmd.py
│ ├── err.py
│ ├── __init__.py
│ ├── jwt.py
│ ├── log.py
│ └── __pycache__
├── gunicorn.py
├── LICENSE
├── main.py
├── README.md
└── requirements.txt