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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM