步骤

1 安装sqlalchemy

npm install sqlalchemy

2 项目下新建文件夹core

3 文件夹core下新建config.py文件,保存db基本信息

4 配置config.py,注意postgresql这里用asyncpg支持异步

from pydantic_settings import BaseSettings

class Settings(BaseSettings):

   #mongodb 

   mongodb_url:str="mongodb://localhost:xxxx"

   mongodb_dbname:str="xxx"

   #postgresql

   postgres_url:str="postgresql+asyncpg://user:password@localhost:5432/dbname"

   settings=Settings()

5  新建utils文件夹

6 utils文件夹下新建database.py文件,配置连接池

7 配置database.py文件

from sqlalchemy import create_engine

from sqlalchemy.orm import sessionmaker

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.ext.asyncio import create_async_engine,AsyncSession,async_sessionmaker

from motor.motor_asyncio import AsyncIOMotorClient

from ..core.config import settings

#mongo连接池

mongo_client=AsyncIOMotorClient(settings.mongodb_url)

mongo_db=mongo_client[settings.mongodb_dbname]

#postgresql连接池(注意这里用create_async_engine,async_sessionmaker支持异步)

engine_db=create_async_engine(settings.postgres_url,pool_pre_ping=True)

 sessionlocal=async_sessionmaker(autocommit=False,autoflush=False,bind=engine_db,class_=AsyncSession)

# 声明式基类

Base=declarative_base()

8 配置路由

新建api文件夹,api文件夹下新建transfermogodb.py文件

9 使用路由,配置transfermogodb.py

from fastapi import APIRouter,Depends,HTTPException,Request

from pydantic import BaseModel

from ..utils.database import mongo_db

router=APIRouter()

router.post("/data")

async def save_test():

  try:

    collection_page=mongo_db["test"]

    collection_page.insert_one({"name":"test1"})

  except Exception as e:

    pass

10 配置路由集合

新建routers文件夹,routes文件夹下新建__init__.py文件

11 配置__init__.py文件

from fastapi import APIRouter

from app.api.transfermogodb import router as transfermogodb_router

router_collections=APIRouter()

router_collections.include_router(transfermogodb_router,prefix="/transfermogodb")

12 main.ts中引用路由集合

import uvicorn

import traceback

from fastapi import FastAPI,Request

from app.routers import router_collection

app=FastAPI()

app.include_router(router_collections,prefix="/api")

13 测试api连通性 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐