This library helps you not get involved in the complexities of FastAPI and its libraries and focus all your attention on the application.
Project description
FastAPI Fast Template
This library helps you not get involved in the complexities of FastAPI and its libraries and focus all your attention on the application.
Features
- Proper structure and ready
- Ruff - An extremely fast Python linter and code formatter, written in Rust.
- pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.
- SQLAlchemy - SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL
- Tortoise ORM - Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper) inspired by Django.
- Beanie ODM - Beanie - is an asynchronous Python object-document mapper (ODM) for MongoDB.
- fastapi-and-logging - FastAPI-and-Logging simplifies log handling, allowing for effective organization, tracking, and analysis of logs in FastAPI applications, aiding in debugging and issue resolution.
- fastapi-and-caching - FastAPI and Caching is an extension for FastAPI that provides support for various caching mechanisms, allowing you to easily leverage caching within your FastAPI applications.
- fastapi-and-babel - FastAPIAndBabel allows you to easily use babel in your FastAPI projects and offers some features to improve and ease things.
- APScheduler Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed later, either just once or periodically.
- FastStream - the simplest way to work with a messaging queues
Install
pip install fastapi-fast-template
Usage
By executing the following command, you initiate the project configuration.
fast init
-- Enter the name of the application (default: Fast Template): FastTemplate
-- Enter the config module type (default: multiple): single or multiple
-- Enter the ORM/ODM (default: sqlalchemy): sqlalchemy, tortoise or beanie
Initializing has been done successfully.
๐ฅณ๐ฅณ, your project has been created!
.
โโโ logs/
โโโ src/
โ โโโ models/
โ โโโ repositories/
โ โ โโโ base.py
โ โโโ routers/
โ โ โโโ __init__.py
โ โโโ schemas/
โ โโโ services/
โ โโโ utils/
โ โ โโโ lifespan.py
โ โโโ app.py
โ โโโ config.py
โ โโโ database.py
โ โโโ main.py
โโโ tests/
โโโ LICENSE
โโโ .env
โโโ .env.sample
โโโ .fast_template.ini
โโโ .gitignore
โโโ .pre-commit-config.yaml
โโโ ruff.toml
Now, you can run it as follows.
python src/main.py
INFO: Will watch for changes in these directories: ['.']
INFO: Loading environment from '.env'
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [44167] using StatReload
INFO: Started server process [44175]
INFO: Waiting for application startup.
INFO: Application startup complete.
Extensions
Babel
You can add Babel to your project as follows.
fast extension --name babel
Please select the default language (default: en): fa
...
...
...
compiling catalog translations/fa/LC_MESSAGES/messages.po to translations/fa/LC_MESSAGES/messages.mo
For more information, click here.
APScheduler
You can add APScheduler to your project as follows.
fast extension --name scheduler
To use it, you can check the "tasks" directory and the "__init__.py" module.
from tasks import scheduler
async def fast_template_scheduler():
print("FastAPI Fast Template")
scheduler.add_job(
func = fast_template_scheduler,
trigger = CronTrigger(minute = "*/30", timezone = "Asia/Tehran")
)
By running the project, the scheduler is executed.
For more information, click here.
FastAPI-And-Caching
You can add caching to your project as follows.
fast extension --name caching
To use it, you can check the "utils" directory and the "caching.py" module.
from utils.caching import cache
@app.get("/")
@cache.cached(key="root", expire=30, prefix="router")
def root():
return "FastAPI Fast Template"
For more information, click here.
FastAPI-And-Logging
You can add logging to your project as follows.
fast extension --name logging
Please select the log type (default: incoming): (choose from incoming, apicall, exception)
You can now check out the app.py module and apply your changes to it.
For more information, click here.
FastStream
You can add broker to your project as follows.
fast extension --name stream
Please select the broker (default: redis): (choose from redis, aiokafka, confluent, rabbit, nats)
You can run it with the following command โโโโโ
faststream run src.stream:app
For more information, click here.
Documents
You can have direct access to the documentation of each library used by using the following command.
fast doc
Quick access to the documents of the tools used in this template.
___________________________________
๐ FastAPI https://fastapi.tiangolo.com
๐ SQLAlchemy https://www.sqlalchemy.org
๐ Tortoise ORM https://tortoise.github.io
๐ Beanie ODM https://beanie-odm.dev
๐ FastAPI-And-Babel https://github.com/heysaeid/fastapi-and-babel
๐ FastAPI-And-Logging https://github.com/heysaeid/fastapi-and-logging
๐ FastAPI-And-Caching https://github.com/heysaeid/fastapi-and-caching
๐ APScheduler https://fastapi.tiangolo.com
๐ FastStream https://faststream.airt.ai
And ...
___________________________________
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
File details
Details for the file fastapi_fast_template-0.0.4b1.tar.gz
.
File metadata
- Download URL: fastapi_fast_template-0.0.4b1.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.2 Linux/6.1.0-22-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e89afd31bb85a94c146952a41008aa65e45d2ca3f5d979f151a8aa3669959595 |
|
MD5 | e12cb31a89891ac74b9c981910d03fbd |
|
BLAKE2b-256 | 32ed62ae69eaf31c512f6428e267a0dd2df421ea1d68ebd792ef1895198591a6 |
File details
Details for the file fastapi_fast_template-0.0.4b1-py3-none-any.whl
.
File metadata
- Download URL: fastapi_fast_template-0.0.4b1-py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.2 Linux/6.1.0-22-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee52af0ff1dd4471d8355247de823c6568b62fcde4047cbe209dbe74689be0bb |
|
MD5 | 4cdc3e6871c91e6e5f9c522fbbfea823 |
|
BLAKE2b-256 | 6f3039a356aa0dd1f02b3de6c31f3cbc4e51d67893bd7077cfe7b52d2ef90bbc |