Skip to content
Snippets Groups Projects
Pavel Kirilin's avatar
2ce76cd3
History

python version Build status version

Fast and flexible general-purpose template for your API.
With text user interface.

Usage

⚠️ Git, Python and Poetry must be installed and accessible ⚠️

Poetry version must be greater or equal than 1.1.8. Otherwise it won't be able to install SQLAlchemy.

python3 -m pip install fastapi_template
python3 -m fastapi_template
# or fastapi_template
# Answer all the questions
# 🍪 Enjoy your new project 🍪
cd new_project
docker-compose -f deploy/docker-compose.yml --project-directory . up --build

If you want to install in from sources then try this:

python3 -m pip install poetry
python3 -m pip install .
python3 -m fastapi_template

Features

Template is made with SQLAlchemy14 and uses sqlalchemy orm and sessions, instead of raw drivers.

It has minimum to start new excellent project.

Generator features:

  • Different databases to choose from.
  • Alembic integration;
  • redis support;
  • different CI\CD templates;
  • Kubernetes config.

This project can handle arguments passed through command line.

$ python -m fastapi_template --help

usage: FastAPI template [-h] [--name PROJECT_NAME]
                        [--description PROJECT_DESCRIPTION]
                        [--db {DatabaseType.none,DatabaseType.sqlite,DatabaseType.mysql,DatabaseType.postgresql}]
                        [--ci {CIType.none,CIType.gitlab_ci,CIType.github}]
                        [--redis] [--alembic] [--kube] [--force]

optional arguments:
  -h, --help            show this help message and exit
  --name PROJECT_NAME   Name of your awesome project
  --description PROJECT_DESCRIPTION
                        Project description
  --db {DatabaseType.none,DatabaseType.sqlite,DatabaseType.mysql,DatabaseType.postgresql}
                        Database
  --ci {CIType.none,CIType.gitlab_ci,CIType.github}
                        Choose CI support
  --redis               Add redis support
  --alembic             Add alembic support
  --kube                Add kubernetes configs
  --force               Owerrite directory if it exists