首页 > 数据库 >tortoise_fastapi_sqlite

tortoise_fastapi_sqlite

时间:2023-02-11 06:44:05浏览次数:50  
标签:__ sqlite tortoise fastapi app import pydantic

tortoise-orm在fastapi中的使用


"""
Tortoise ORM 
"""


from tortoise.contrib.fastapi import register_tortoise
from tortoise.contrib.pydantic import pydantic_model_creator
from tortoise import models, fields

class TortoiseOrm(models.Model):
    # 表中的第一个字段,字符串类型,最大长度30个字符
    data = fields.CharField(max_length=30)
    #      第二个字符,datatime类型,自动添加时间戳,不为空
    create_date = fields.DatetimeField(auto_now_add=True, null=True)

    class Meta:
        table = 'a' # 表的名称

# biao 转成pydantic模型 output openapi 模型名称,
# 这个东西相当于一个过滤器,将表中的字段过滤成合适的pydantic模型
Response = pydantic_model_creator(TortoiseOrm, name="OutPut", exclude=("create_date",))



from fastapi import FastAPI
app = FastAPI(title="TortoiseORM")

register_tortoise(
    app,
    db_url="sqlite://basic.sqlite3",
    modules={"models": ["__main__"]},
    add_exception_handlers=True,
)


@app.get("/", response_model=Response)
async def index():
    # 第一种自己手动过滤,更加精确,执行效率会高一些,select id,data from a
    # return await TortoiseOrm.all().order_by("id").first().values('id', 'data')
    # 第二种,直接查询所有的字段,然后通过Response模型过滤,执行效率可能会低一些,但是简单省事select * from a;
    return await TortoiseOrm.all().order_by("id").first()


@app.get("/index")
async def index1():
    return await TortoiseOrm.all().order_by("id")

if __name__ == '__main__':
    import uvicorn

    uvicorn.run("__main__:app", reload=True)

标签:__,sqlite,tortoise,fastapi,app,import,pydantic
From: https://www.cnblogs.com/zhuoss/p/17110822.html

相关文章

  • sqlalchemy_fastapi_demo
    fastapi_sqlalchemy"""SQLAlchemy"""#SQlAlchemyfromsqlalchemyimportColumn,Integer,String,DateTime,func,selectfromsqlalchemy.ormimportdeclarati......
  • sqlalchemy_sqlite_shellhistory
    /Users/song/Code/sqlalchemy_learn_20230210/le00.pyfromsqlalchemyimportColumn,String,create_engine,Integerfromsqlalchemy.ormimportsessionmaker,declara......
  • sqlite数据库死亡提示database disk image is malformed的修复经历
    今天在处理一个客户的问题时,发现使用客户的sqlite数据库,本地调试代码报databasediskimageismalformed,查了下说是文件损坏了,网上有修复的方法,说实话开始也不抱太大......
  • Android sqlite3工具的使用
    sqlite3<数据库名称>进入数据库操作模式eg:sqlite3contacts.db使用这条命名前,先进入到该数据库的位置(需要用adbshell),执行 sqlite3contacts.db.tables查看所有的......
  • 若依-更换数据库-sqlite
    基础我是在ruoyi-vue已经安装了mybatis-plus的基础上进行的修改关于SQLiteSQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQ......
  • Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite
    目录建立默认带身份验证Blazor程序角色/组件/特性/过程逻辑DB改Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql生成实体类,freesql管理......
  • 检测sqlite3数据库的完整性
    1/**2*@integrityCheck3*@brief检查数据库的完整性4*5*@paramdbPath数据库的路径6*@返回值0:完整;-1损坏7*/8intintegrityCheck(......
  • 【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(Attribut
    问题描述参考文档“UsingFastAPIFrameworkwithAzureFunctions”,使用FastAPI模块在Function中实现API请求。通过VSCode本地运行成功。但是部署到AzureFunction......
  • fastapi_socketio_chatroom
    E:\song2\fastapi_socketio_chatroom\app.py#socketioimportsocketio#fastapifromfastapiimportFastAPI,WebSocket,Request,WebSocketDisconnectfromfast......
  • TortoiseSVN v1.7
     X32位:​​​http://nchc.dl.sourceforge.net/project/tortoisesvn/1.7.0/Application/TortoiseSVN-1.7.0.22068-win32-svn-1.7.0.msi​​X64:​​......