tornado中数据库ORM操作(二):通过peewee-async集成到tornado中

github地址:https://github.com/05bit/peewee-async

Install

Install with pip for PostgreSQL:

pip install --pre peewee-async; pip install aiopg

or for MySQL:

pip install --pre peewee-async; pip install aiomysql

使用案例

model

from datetime import datetime

from peewee import *
import peewee_async

database = peewee_async.MySQLDatabase(
    'sanguo', host='127.0.0.1', port=3306, user='root', password='123456')


class BaseModel(Model):
    add_time = DateTimeField(default=datetime.now(), verbose_name="添加时间")

    class Meta:
        database = database


# 供应商
class Supplier(BaseModel):
    name = CharField(max_length=100, verbose_name="名称", index=True)
    address = CharField(max_length=100, verbose_name="联系地址")
    phone = CharField(max_length=11, verbose_name="联系方式")

    class Meta:
        table_name = "supplier"


class Goods(BaseModel):
    supplier = ForeignKeyField(Supplier, verbose_name="商家", backref="goods")
    # 新建表时在name字段上加个索引
    name = CharField(max_length=100, verbose_name="商品名称", index=True)
    click_num = IntegerField(default=0, verbose_name="点击数")
    goods_num = IntegerField(default=0, verbose_name="库存数")
    price = FloatField(default=0.0, verbose_name="价格")
    brief = TextField(verbose_name="商品简介")

    class Meta:
        table_name = "goods"


objects = peewee_async.Manager(database)
database.set_allow_sync(False)

peewee_async

import asyncio

from chapter04.models.model import Goods
from chapter04.models.model import objects


async def handler():
    # # 之前的.save方法是同步的 这里不能用了
    # # 保存一条记录
    # await objects.create(Goods, supplier_id=3, name="娃哈哈", click_num=20,
    #                      goods_num=1000, price=500, brief="宗庆后")

    # 查询所有的记录
    # 本质 使用await objects.execute(),执行peewee的sql语句
    goods = await objects.execute(Goods.select())
    for good in goods:
        print(good.name)

loop = asyncio.get_event_loop()
loop.run_until_complete(handler())

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值