【FastAPI】7.使用Tortoise及Fastapi构建一个简单的wms软件

使用Tortoise及Fastapi构建一个简单的wms软件

Tortoise ORM 简介

Tortoise ORM 是一个 Python 数据库 ORM 框架,它提供了一种简单的方式来操作数据库,并支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。

Tortoise ORM 安装

Tortoise ORM 可以通过 pip 安装:

pip install tortoise-orm[asyncmy]
  • asyncmy: 使用 asyncmy 库,用于连接Mysql数据库

Tortoise ORM 特性

  • 异步支持
    • Tortoise ORM 专门为异步框架设计,它利用了Python的asyncio模块,可以高效的处理并发数据库操作。
    • 特别适合与FastAPI web框架搭配使用
  • 自动生成表结构
    • 可以根据模型自动生成数据库表结构,避免手动创建表结构,但是企业级应用建议关闭

Tortoise ORM 与 SQLAlchemy 的对比

  • Tortoise ORM 是一个异步的 ORM 框架,它利用了 Python 的 asyncio 模块,可以高效的处理并发数据库操作。
  • SQLAlchemy 是一个同步的 ORM 框架,它利用了 Python 的 threading 模块,可以处理并发数据库操作,但是它不是异步的。
    • 在 SQLAlchemy 1.4 版本中,它已经支持了异步操作,但是是基于同步基础上进行的二次封装

创建router_good

from fastapi import APIRouter
from fastapi.params import Query

from app.fastapidemo.service.wms.models import Goods

router = APIRouter()


@router.get("/" ,tags=["商品管理"],description= "商品管理")
def goods_default():
    return {
   "goods": "goods"}

创建router_warehouse

from datetime import datetime
from fastapi import APIRouter
from pydantic import BaseModel

from app.fastapidemo.service.wms.models import Warehouse

router = APIRouter()


class WarehouseCreate(BaseModel):
    name: str


@router.get("/", tags=["仓库管理"], description="仓库管理")
def warehouse_default():
    return {
   "warehouse": "warehouse"}


@router.get("/warehouses")
async def get_warehouse():
    date = await Warehouse.all()
    return date

创建 main.py 并注册Tortoise

from fastapi import  FastAPI
from router_goods import  router as router_goods
from router_warehouse import router as router_warehouse
from tortoise.contrib.fastapi import register_tortoise
app = FastAPI()

app.include_router(router_warehouse,prefix="/warehouse",tags=["仓库管理"])
app.include_router(router_goods,prefix="/goods",tags=["商品管理"])

try:
    register_tortoise(
        app,
        db_url="mysql://root:[pass_word]@[ip]:3306/[db_name]",  # 替换为你的数据库名称
        modules={
   "models": ["app.fastapidemo.service.wms.models"]},  # 指定包含的 models 模块
        generate_schemas=False,  # 不自动生成表结构
        add_exception_handlers=True  # 添加异常处理程序
    )
    print("Tortoise ORM registered successfully.")
except Exception as e:
    print(f"Failed to register Tortoise ORM: {
     e}</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值