怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

fastapi_sqlalchemy

"""
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" # table name就是表的名字
# 属性,就是表中的字段
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 和session
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():
# 方式一:with 形式
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)
posted on   超级无敌美少男战士  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.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循环中的使用
点击右上角即可分享
微信分享提示