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.1.tar.gz (801.9 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.1-py3-none-any.whl (872.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastapi_template-6.1.1.tar.gz
  • Upload date:
  • Size: 801.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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.1.tar.gz
Algorithm Hash digest
SHA256 8728f380c46f4ccda1e52519cc941c4d7a0c39ab1ed0bbcfbb746e176abf846f
MD5 1f77b50a28377890ed5999bbad8b7b81
BLAKE2b-256 23d18f3ffc44ae23513ad45674507bccc5e088b18d8079fcb60e86139e853522

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fastapi_template-6.1.1-py3-none-any.whl
  • Upload date:
  • Size: 872.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18a2181f5595a2b33105ebbf216a802bc6779ecc4dd13e59426848b129161140
MD5 161caa336b027fd7f2bc6244e6468f64
BLAKE2b-256 81f5a876f19c0d51d2ab5958b3c86a273b53021abd07c99d0fc9db8a17de70c8

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