This is a cookiecutter template for a typical Flask application following modern packaging conventions. It utilizes popular libraries alongside Make and pipenv to fully automate all development and deployment tasks. Check out the live demo: jacebrowning/template-flask-demo
- Settings broken out into local, staging, and production
- API using Flask API
- Unit and integration testing using
pytest
,pytest-describe
, andpytest-expecter
- End-to-end testing using Splinter
Makefile
for automating common development tasks:- Installing dependencies into a virtual environment using
pipenv
- Generate superuser and other fixtures to seed the database
- Running tests against the backend and frontend
- Running style checkers (
pycodestyle
/pydocstyle
) and linters (pylint
)
- Installing dependencies into a virtual environment using
- Continuous Integration via CircleCI
- Continuous Delivery via Heroku
If you are instead looking for a Python library template, check out jacebrowning/template-python.
Install cookiecutter
and generate a project:
$ pip install cookiecutter
$ cookiecutter gh:jacebrowning/template-flask -f
Cookiecutter will ask you for some basic info (your name, project name, python package name, etc.) and generate a base Python project for you.
Checkout the appropriate branch of template-flask-demo and manually merge changes into your project.