Tortoise-API
Simplest fastest minimal REST API CRUD generator for Tortoise ORM models.
Fully async Zero config One line ASGI app
Requirements
- Python >= 3.10
INSTALL
pip install tortoise-api
Run your app
- Describe your db models with Tortoise ORM in
models.pymodule
from tortoise_api import Model
class User(Model):
id: int = fields.IntField(pk=True)
name: str = fields.CharField(255, unique=True, null=False)
posts: fields.ReverseRelation["Post"]
class Post(Model):
id: int = fields.IntField(pk=True)
text: str = fields.CharField(4095)
user: User = fields.ForeignKeyField('models.User', related_name='posts')
_name = 'text' # `_name` sets the attr for displaying related Post instace inside User (default='name')
- Write run script
main.py: pass your models module in Api app:
from tortoise_api import Api
import models
app = Api().start(models)
- Set
DB_URLenv variable in.envfile - Run it:
uvicorn main:app
Or you can just fork Completed minimal runnable example from sample apps.
And voila:
You have menu with all your models at root app route: http://127.0.0.1:8000
And JSON resources for each db Entity at /{modelName} routes:
And one separate Entity at /{modelName}/{entity_id} routes:
Made with ❤ on top of the Starlette and Tortoise ORM.
Metadata
Release files for tortoise-api 0.10.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tortoise_api-0.10.17.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tortoise_api-0.10.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / tortoise_api-0.10.17.tar.gz
| Download URL | tortoise_api-0.10.17.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d709bf933092223dab0b9ab19374ee7babb6df49b37cb584e16a0fbf1f12fad
|
|
BLAKE2b-256 checksum How to use checksums |
5d42c53c5bc729f810de9d892c8d31714f914033e478146a26dd6c94a4d43f81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / tortoise_api-0.10.17-py3-none-any.whl
| Download URL | tortoise_api-0.10.17-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
643f7c7e46cf1dff61470be4a825339036fea64a15f1a37456da1e09d42072a9
|
|
BLAKE2b-256 checksum How to use checksums |
e01d9a6f88e9439719d36c97e325c5b1bb89dd4f9361475d87007a2a29b91bb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|