Feature-rich robust FastAPI template
Project description
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.
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 -f deploy/docker-compose.yml --project-directory . build docker-compose -f deploy/docker-compose.yml --project-directory . up --build
If you want to install it from sources, try this:
python3 -m pip install poetry python3 -m pip install . python3 -m fastapi_template
Also you can use it with docker.
docker run --rm -it -v "$(pwd):/projects" 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 SQLAlchemy1.4, TortoiseORM, Piccolo and Ormar are supported.
This project can run as TUI or CLI and has excellent code documentation.
Generator features:
- You can choose between GraphQL and REST api;
- Different databases support;
- Different ORMs support;
- Optional migrations for each ORM except raw drivers;
- Optional redis support;
- Optional rabbitmq support;
- different CI\CD;
- Optional Kubernetes config generation;
- 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.
This project can handle arguments passed through command line.
$ python -m fastapi_template --help usage: FastAPI template [-h] [--version] [--name PROJECT_NAME] [--description PROJECT_DESCRIPTION] [--api-type {rest,graphql}] [--db {none,sqlite,mysql,postgresql}] [--orm {ormar,sqlalchemy,tortoise,psycopg,piccolo}] [--ci {none,gitlab_ci,github}] [--redis] [--rabbit] [--migrations] [--kube] [--dummy] [--routers] [--swagger] [--prometheus] [--sentry] [--loguru] [--opentelemetry] [--traefik] [--force] [--quite] optional arguments: -h, --help show this help message and exit --version, -V Prints current version --name PROJECT_NAME Name of your awesome project --description PROJECT_DESCRIPTION Project description --api-type {rest,graphql} API type --db {none,sqlite,mysql,postgresql} Database --orm {ormar,sqlalchemy,tortoise,psycopg,piccolo} ORM --ci {none,gitlab_ci,github} Choose CI support --redis Add Redis support --rabbit Add RabbitMQ support --migrations Add migrations support --kube Add Kubernetes configs --dummy, --dummy-model Add dummy model --routers Add example routers --swagger Enable self-hosted Swagger --prometheus Add prometheus integration --sentry Add sentry integration --loguru Add loguru logger --opentelemetry Add opentelemetry integration --traefik Adds traefik labels to docker container --force Owerrite directory if it exists --quite Do not ask for features during generation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fastapi_template-3.3.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48b87b4269a5252df7f40f03a819068d4bb208e09b751856baaa8023ce9c4d8e |
|
MD5 | f8131c11d12f4ba584c6d335eae4d4a8 |
|
BLAKE2-256 | adffd2cc508c05e276c74aa2ce74d69760385003cc2a2eaf0b465c6475121f1c |