作为一个踩坑小白,把测试代码贴出如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import asyncio
from models import User
from orm import create_pool,destory_pool
#测试方法1
@asyncio.coroutine
def test1():
yield from create_pool(loop,port=3306,user='root',password='123456',db='awesome')
user = User(name='lu',email='55445337@qq.com',passwd='123f', image='about:blank')
yield from user.save()
yield from destory_pool() #这里先销毁连接池
print('HEHEHEHHEHEHE')
loop = asyncio.get_event_loop()
loop.run_until_complete(test1())
loop.run_forever()
同样是在mysql数据库连接池连上,导入,保存数据之后,销毁连接池。一般测试程序出错在
timeError: Event loop is closed,这个语句,数据库保存数据时,语法要求关键字不能重复,不能重复保存相同的数据,所以运行保证每次操作的user对象 内容不相同。可以使用
select * from 表名;
来查看数据库表如User的内容。
针对loop循环超时问题,最后添加
loop.run_forever()
来永远运行这个队列,完美避开了loop.closed()导致的问题,
解决方案费时2-3day.关于这一块ORM,model的知识,推荐看下下面这个博客:
http://www.luameows.wang/2018/03/09/%E5%88%9B%E7%AB%8BORM-%E5%BB%96%E9%9B%AA%E5%B3%B0python%E7%AC%94%E8%AE%B0/