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