fastapi_sqlalchemy
| """ |
| SQLAlchemy |
| """ |
| |
| from sqlalchemy import Column, Integer, String, DateTime, func, select |
| from sqlalchemy.orm import declarative_base |
| |
| |
| Base = declarative_base() |
| |
| class SqlAlchemyTable(Base): |
| __tablename__ = "a" |
| |
| |
| id = Column(Integer, primary_key=True) |
| data = Column(String) |
| create_date = Column(DateTime, server_default=func.now()) |
| |
| |
| |
| from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession |
| from sqlalchemy.orm import sessionmaker |
| |
| engine = create_async_engine("sqlite+aiosqlite:///basic.sqlite3") |
| async_session = sessionmaker( |
| engine, expire_on_commit=True, class_=AsyncSession |
| ) |
| |
| |
| |
| |
| from fastapi import FastAPI, Depends |
| from pydantic import BaseModel |
| |
| class Response(BaseModel): |
| id: int |
| data: str |
| |
| app = FastAPI(title="SQLAlchemy & TortoiseORM") |
| |
| |
| @app.get("/", response_model=Response) |
| async def index(): |
| |
| async with async_session() as session: |
| result = await session.execute(select(SqlAlchemyTable).order_by(SqlAlchemyTable.id)) |
| return result.scalars().first().__dict__ |
| |
| |
| def get_db(): |
| session = async_session() |
| try: |
| yield session |
| finally: |
| session.close() |
| |
| |
| @app.get("/index") |
| async def index1(db: AsyncSession = Depends(get_db)): |
| |
| result = await db.execute(select(SqlAlchemyTable).order_by(SqlAlchemyTable.id)) |
| return result.scalars().all() |
| |
| |
| if __name__ == '__main__': |
| import uvicorn |
| uvicorn.run("__main__:app", reload=True) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2022-02-10 for循环中使用异步请求的注意
2022-02-10 promise 成功回调 失败回调
2022-02-10 reduce中使用request请求
2022-02-10 常见的数据操作 封装成一个对象处理
2022-02-10 nodejs中的request请求 promise封装
2022-02-10 nodejs的request请求 解码设置
2022-02-10 const关键字在for循环中的使用