zoukankan      html  css  js  c++  java
  • Sanic十七:Sanic + 异步orm之Tortoise-ORM

    Tortoise-ORM 也是个非常优秀的异步orm框架

    官网:https://tortoise-orm.readthedocs.io/en/latest/

    官网提供的与sanic结合使用的示例:https://tortoise-orm.readthedocs.io/en/latest/examples/sanic.html

    安装:pip install tortoise-orm

    模型

    与app绑定

    创建用户

    查询

    tortoise-orm 要比 SQLALchemy 轻很多,使用也方便很多

    models

    from tortoise import Model, fields


    class Users(Model):
    id = fields.IntField(pk=True)
    name = fields.CharField(50)
    age = fields.IntField()

    def __str__(self):
    return f"User {self.id}: {self.name}: {self.age}"

    main

    import logging

    from models import Users
    from sanic import Sanic, response

    from tortoise.contrib.sanic import register_tortoise

    logging.basicConfig(level=logging.DEBUG)

    app = Sanic(__name__)


    @app.get("/user")
    async def list_all(request):
    users = await Users.all()
    return response.json({"users": [str(user) for user in users]})


    @app.post("/user")
    async def add_user(request):
    user = await Users.create(**request.json)
    return response.json({"user": str(user)})


    register_tortoise(
    app, db_url="mysql://root:123456@localhost/test", modules={"models": ["models"]}, generate_schemas=True
    )

    if __name__ == '__main__':
    import uvicorn

    uvicorn.run('main:app', host='0.0.0.0', port=8000, debug=True)
    讨论群:249728408
  • 相关阅读:
    串匹配模式中的BF算法和KMP算法
    “隐藏与显示”的多种方法实现
    原生js实现tooltip提示框的效果
    心向旋转巧得木马 峰回路转偶得时钟
    jQuery 之 验证表单
    Java代码添加背景音乐
    svg动画 之 我的自制太阳系
    java_22 Map接口
    java_22.1 Map 的应用
    java_18 Collection接口
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15126115.html
Copyright © 2011-2022 走看看