andyxmap / Tortoise2FastApi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Auto api crud based on tortoise models. Add dynamic classes import and parsed file location to py modules

Installation

Usage

Only just inherits from base which is a superclass of tortoise.models.Model

from tortoise import fields

from src.models.base import Base


class Users(Base):
    username = fields.CharField(max_length=20, unique=True)
    name = fields.CharField(max_length=50, null=True)
    family_name = fields.CharField(max_length=50, null=True)

The core module will be in charge of dynamically loading and creating the endpoints according to the added models.

class AppBasedModel(FastAPI):

    def configure(self, exclude: List[str] = ["Base"]):
        Tortoise.init_models(parse2module("src"), app_label) # for init models for use pydantic relation
        models = loader("src", Base, exclude=exclude)  # dynamic load
        for m in models:
            router = RouterBasedModel(m).build_crud_router()  # construct router based model
            self.include_router(router)

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Contact me by email mailto

License

MIT

About


Languages

Language:Python 100.0%