A FastAPI plugin that quickly builds CRUD-API based on SQLAlchemy
Project description
FastAPIX
FastAPIX 为 FastAPI 提供的基于 SQLAlchemy ORM 快速构建数据库操作的插件.
安装
pip3 install fastapix-py
# or
pip3 install fastapix_py-<version>-py3-none-any.whl
fastapi
from fastapi import FastAPI
app = FastAPI()
离线挂载 openapi
from fastapix import offline
offline.register_offline_openapi(app)
修改异常返回结果
from fastapix import handlers
handlers.register_exception_handlers(app)
ORM模型
from uuid import UUID, uuid4
from fastapix.crud import SQLModel, Field
# 继承 SQLModel
class Category(SQLModel, table=True):
id: UUID = Field(default_factory=uuid4, primary_key=True, nullable=False, create=False, update=False)
name: str = Field(..., title='名称', max_length=100, index=True, nullable=False, unique=True, update=False)
description: str | None = Field(None, title='描述', max_length=255)
test_list: list[str] | None = Field(None, title='test list')
test_dict: dict[str, str] | None = Field(None, title='test dict')
创建连接
AsyncDatabase
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
database_url = 'sqlite+aiosqlite:///test.db'
engine: AsyncEngine = create_async_engine(database_url)
Database
from sqlalchemy.engine import create_engine, Engine
database_url = 'sqlite+aiosqlite:///test.db'
engine: Engine = create_engine(database_url)
注册
from fastapix.crud import SQLAlchemyCrud, EngineDatabase
database = EngineDatabase(engine)
cate_router = SQLAlchemyCrud(Category, database).router_manager()
# 挂载中间件
app.add_middleware(database.asgi_middleware)
# 挂载路由
app.include_router(cate_router.create_object_router())
app.include_router(cate_router.read_object_router())
app.include_router(cate_router.update_object_router())
app.include_router(cate_router.delete_object_router())
OpenAPI Docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file fastapix_py-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: fastapix_py-0.5.1-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a330df9ea7badc172920b5030624bb1c07797f0e7e99c023b18c37a96d59534 |
|
MD5 | 8fa521b2f14ad9742bffea66fb313b59 |
|
BLAKE2b-256 | d43644ec8e816125c1867386e3f10615fa486c4d96c921ede0442218e2122455 |