• 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
  • 相关阅读:
    ACM常用算法及练习(2)
    ACM常用算法及练习(1)
    ACM进阶计划
    《算法艺术与信息学竞赛》题目-提交方式对照表
    ACM之Java速成(4)
    ACM之Java速成(3)
    ACM之Java速成(2)
    ACM之Java速成(1)
    uva 11520
    uva 10755
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15126115.html
Copyright © 2020-2023  润新知