Skip to main content

Feature-rich robust FastAPI template

Project description

python version version

Flexible general-purpose template for FastAPI.

Usage

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

Templator in action

You can install it directly from pypi with pip.

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 up --build

If you want to install it from sources, try this:

python3 -m pip install uv 
python3 -m pip install .
python3 -m fastapi_template

Also, you can use it with docker.

docker run --rm -it -v "$(pwd):/projects" ghcr.io/s3rius/fastapi_template

Features

One of the coolest features is that this project is extremely configurable. You can choose between different databases and even ORMs, or you can even generate a project without a database! Currently SQLAlchemy 2.0, TortoiseORM, Piccolo, Ormar and Beanie are supported.

This project can run as TUI or CLI and has excellent code documentation.

Generator features:

  • Pydantic V2 (Where it's possible. Some libs doesn't have support);
  • You can choose between GraphQL and REST api;
  • Uvicorn and gunicorn;
  • Different databases support;
  • Different ORMs support;
  • Optional migrations for each ORM except raw drivers;
  • Optional redis support;
  • Optional rabbitmq support;
  • different CI\CD;
  • Optional Demo routers and models (This helps you to see how project is structured);
  • Pre-commit integration;
  • Generated tests with almost 90% coverage;
  • Tests for the generator itself;
  • Optional Prometheus integration;
  • Optional Sentry integration;
  • Optional Loguru logger;
  • Optional Opentelemetry integration.
  • Optional taskiq integration.

This project can handle arguments passed through command line.

$ python -m fastapi_template --help

Usage: fastapi_template [OPTIONS]

Options:
  -n, --name TEXT                 Name of your awesome project
  -V, --version                   Prints current version
  --force                         Owerrite directory if it exists
  --quiet                         Do not ask for features during generation
  --api-type [rest|graphql]       Select API type for your application
  --db [none|sqlite|mysql|postgresql|mongodb]
                                  Select a database for your app
  --orm [none|ormar|sqlalchemy|tortoise|psycopg|piccolo|beanie]
                                  Choose Object–Relational Mapper lib
  --ci [none|gitlab_ci|github]    Select a CI for your app
  --redis                         Add redis support
  --add_users                     Add fastapi-users support
  --rabbit                        Add RabbitMQ support
  --taskiq                        Add Taskiq support
  --migrations                    Add Migrations
  --dummy                         Add dummy model
  --routers                       Add example routers
  --swagger                       Add self hosted swagger
  --prometheus                    Add prometheus compatible metrics
  --sentry                        Add sentry integration
  --loguru                        Add loguru logger
  --opentelemetry                 Add opentelemetry integration
  --traefik                       Adds traefik labels to docker container
  --kafka                         Add Kafka support
  --gunicorn                      Add gunicorn server
  --cookie-auth                   Add authentication via cookie support
  --jwt-auth                      Add JWT auth support
  --help                          Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_template-6.1.2.tar.gz (802.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_template-6.1.2-py3-none-any.whl (873.4 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_template-6.1.2.tar.gz.

File metadata

  • Download URL: fastapi_template-6.1.2.tar.gz
  • Upload date:
  • Size: 802.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fastapi_template-6.1.2.tar.gz
Algorithm Hash digest
SHA256 3a8532700baf643850838a307f63c447364c9eeb692890c1af6057873fa1b13c
MD5 e0008ef48a8b547f17150702a25c1f01
BLAKE2b-256 3c9454fe6bad909f4cb3e0ba16ed3b2a2b38d2f2d8b7df074b1221a62e7a637a

See more details on using hashes here.

File details

Details for the file fastapi_template-6.1.2-py3-none-any.whl.

File metadata

  • Download URL: fastapi_template-6.1.2-py3-none-any.whl
  • Upload date:
  • Size: 873.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fastapi_template-6.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1c135c5a8550c765c485f328940e56dd6af71a6909517e2663f7ca04997ca4d
MD5 f33659ee09e29a5bba09ec8d33d8918e
BLAKE2b-256 be07b2d2cf96832b8362e416f23a1a6834a240120b7b59e0cc9e2df83b5b596c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page