New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

fastapi-tortoise-crud

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastapi-tortoise-crud

fastpi简单crud

  • 0.2.10
  • PyPI
  • Socket score

Maintainers
1

fastapi-admin

项目默认会安装

  • fastapi_pagination
  • fastapi
  • tortoise-orm

目前只支持pydantic-v2

功能示例

main.py

from typing import Callable

from fastapi import FastAPI, Depends, HTTPException, Request
from fastapi_pagination import Params
from fastapi_pagination.ext.tortoise import paginate
from tortoise.contrib.fastapi import register_tortoise
from uvicorn import run
from fastapi_tortoise_crud import ModelCrud, BaseApiOut
from models import User


def aa(request: Request, test_params: str = '333'):
    # raise HTTPException(status_code=400, detail='aaa')
    print('aaa')
    return {'id': 1, 'username': 'aaa'}


def bb():
    return 'bb'


class UserCrud(ModelCrud):
    def route_list(self) -> Callable:
        schema_filters = self.schema_filters

        async def route(filters: schema_filters, params: Params = Depends(), order_by: str = '-create_time',
                        a=Depends(aa)):
            print(a)
            filter_item = await self.pre_list(filters)
            queryset = self.model.filter(**filter_item)
            if order_by:
                queryset = queryset.order_by(*order_by.split(','))
            data = await paginate(queryset, params, True)
            return BaseApiOut(data=data)

        return route


user = UserCrud(User,
                schema_filters=User.schema_filters(include=('username', 'status')),
                schema_read=User.schema_read(exclude=('password', 'id')),
                schema_list=User.schema_list(),
                depends_create=False,
                dependencies=[Depends(bb)],
                depends_read=[Depends(aa)]
                )
app = FastAPI()

app.include_router(user, prefix='/user', tags=['用户管理'])


@app.get("/")
async def root():
    return {"message": "Hello World"}


@user.get('/bba')
async def bba():
    return 'bba'


pass

register_tortoise(
    app,
    db_url="sqlite://data.db",
    modules={"models": ["models"]},
    generate_schemas=True,
    add_exception_handlers=True,
)

if __name__ == '__main__':
    run("main:app", port=2103, reload=True)
    pass

models.py

from fastapi_tortoise_crud.model import BaseModel
from tortoise import fields


class User(BaseModel):
    username = fields.CharField(64)
    password = fields.CharField(32)
    nickname = fields.CharField(32, null=True, default='游客')

路由

img.png

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc