A scaffold to speed up launching a flask project, set up with minimal dependencies.
You can just remove
.vscode/ files if you don't need them.
There is no silver bullet, so if other libraries or practice are preferred, you can add or change anything as you like.
(Optional) Docker and docker compose
- Blueprint templates to organize directory structure
- Colorful logger in terminals, stolen from tornado
- Gunicorn aiohttp server for production use
- Integrated with static analysis and lint tools like
flake8and git hook tool
- Default Github Actions and Heroku configuration
Create virtual environment with dependencies
python3 -m venv venv && source venv/bin/activate && poetry install
Specify development config (with debug mode on)
Run development flask server
Run development gunicorn server with aiohttp worker
gunicorn -b :5000 aioapp:aioapp -k aiohttp.worker.GunicornWebWorker --reload
Run production gunicorn server
Build docker image
docker build .
Run with docker compose
docker-compose up --build
Format Python code with black
black . --exclude venv
Run git pre-commit hooks
pre-commit run --all-files