Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/snower/torpeewee
Tornado and asyncio asynchronous ORM by peewee
https://github.com/snower/torpeewee
mysql orm peewee postgresql pymysql tornado
Last synced: 3 months ago
JSON representation
Tornado and asyncio asynchronous ORM by peewee
- Host: GitHub
- URL: https://github.com/snower/torpeewee
- Owner: snower
- License: mit
- Created: 2016-06-24T09:08:28.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-05-25T10:15:48.000Z (over 3 years ago)
- Last Synced: 2024-04-24T08:29:42.918Z (9 months ago)
- Topics: mysql, orm, peewee, postgresql, pymysql, tornado
- Language: Python
- Homepage:
- Size: 92.8 KB
- Stars: 26
- Watchers: 3
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- starred-awesome - torpeewee - Tornado and asyncio asynchronous ORM by peewee (Python)
README
# torpeewee
[![Build Status](https://travis-ci.org/snower/torpeewee.svg?branch=master)](https://travis-ci.org/snower/torpeewee)
Tornado and asyncio asynchronous ORM by peewee
# About
torpeewee - Tornado and asyncio asynchronous ORM by peewee.
# Installation
pip install torpeewee
# Examples
```python
# -*- coding: utf-8 -*-
# 16/7/7
# create by: snowerimport datetime
import asyncio
from torpeewee import *db = MySQLDatabase("test", host="127.0.0.1", port=3306, user="root", passwd="123456")
class BaseModel(Model):
class Meta:
database = dbclass Test(BaseModel):
id = IntegerField(primary_key= True)
data = CharField(max_length=64, null=False)
count = IntegerField(default=0)
created_at = DateTimeField()
updated_at = DateTimeField()@db.transaction()
async def run_transaction(transaction):
async for i in Test.use(transaction).select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)print("")
t = await Test.use(transaction).create(data="test", created_at=datetime.datetime.now(),
updated_at=datetime.datetime.now())
print(t.id, t.data)async for i in Test.select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)print("")
for i in (await Test.use(transaction).select().order_by(Test.id.desc()).limit(2)):
print(i.id, i.data)async def run():
t = await Test.select().where(Test.id == 5).first()
print(t)c = await Test.select().where(Test.id > 5).count()
print(c)c = await Test.select().where(Test.id > 5).group_by(Test.data).count()
print(c)for i in (await Test.select().where(Test.id > 5).where(Test.id<=10)):
print(i.id, i.data)async for i in Test.select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)
t = await Test.create(data = "test", created_at=datetime.datetime.now(), updated_at=datetime.datetime.now())
print(t.id, t.data)
async for i in Test.select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)print("")
print("")t = await Test.select().order_by(Test.id.desc()).limit(1)[0]
print(t.id, t.data, t.count)
t.count += 1
await t.save()
t = await Test.select().order_by(Test.id.desc()).limit(1)[0]
print(t.id, t.data, t.count)print("")
print("")async with await db.transaction() as transaction:
t = await Test.use(transaction).select().order_by(Test.id.desc()).limit(1)[0]
print(t.id, t.data, t.count)
t.count += 1
await t.use(transaction).save()async for i in Test.use(transaction).select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)print("")
t = await Test.use(transaction).create(data="test", created_at=datetime.datetime.now(), updated_at=datetime.datetime.now())
print(t.id, t.data)async for i in Test.select().order_by(Test.id.desc()).limit(2):
print(i.id, i.data)print("")
for i in (await Test.use(transaction).select().order_by(Test.id.desc()).limit(2)):
print(i.id, i.data)print("")
print("")await run_transaction()
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
```# License
torpeewee uses the MIT license, see LICENSE file for the details.