Skip to main content

Simplest fastest minimal REST API CRUD generator for Tortoise ORM models

Project description

Tortoise-API

Simplest fastest minimal REST API CRUD generator for Tortoise ORM models.

Fully async Zero config One line ASGI app

Requirements

  • Python >= 3.9

INSTALL

pip install tortoise-api

Run your app

  • Describe your db models with Tortoise ORM in models.py module
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_URL env variable in .env file
  • 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

Home - Models list

And JSON resources for each db Entity at /{modelName} routes:

User JSON resources

And one separate Entity at /{modelName}/{entity_id} routes:

User 1 JSON resource

Made with ❤ on top of the Starlette and Tortoise ORM.

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

tortoise-api-0.2.9.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

tortoise_api-0.2.9-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file tortoise-api-0.2.9.tar.gz.

File metadata

  • Download URL: tortoise-api-0.2.9.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for tortoise-api-0.2.9.tar.gz
Algorithm Hash digest
SHA256 a7e19cc0f839c12cb84075bd9644bc226baea86ffae68817a7cc2720af5bcbaa
MD5 4a59c19a83dc06cc4bf40ad83d389c5e
BLAKE2b-256 e916d35bd25b206302355ae82fa728db5c4786a29befee51b94831f860ff3f1d

See more details on using hashes here.

File details

Details for the file tortoise_api-0.2.9-py3-none-any.whl.

File metadata

File hashes

Hashes for tortoise_api-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 26e31f330b9b85bca9272ddf172a1afe1ff2980da29887d5b427e7f967a7331d
MD5 4fb7ad4e8480b6f38518b4886ec0a06a
BLAKE2b-256 0a18556b8ce1d5da093e1b7b3610b18b20818af1067868f9ba2fdc3d3b912322

See more details on using hashes here.

Supported by

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