按照评论中的代码,改好后还是ERROR:2003,已改成了神经病
Topic source数据库awesome也已经提前创建了,但是为什么必须要连接user数据库,我不是参数写的db='awesome'么,不是很懂orm.py里面的__pool参数 db=kw['user'] 为什么不能写成db=kw['awesome'] 写成db=kw['user']报错: pymysql.err.InternalError: (1049, "Unknown database 'user'") 写成db=kw['awesome']报错: File "D:\awesome-python3-webapp\www\orm.py",line 20, in create_pool db=kw['awesome'], KeyError: 'awesome' 还能不能给条活路!!!!
老兄 这个KeyError是kw这个字典取值时用key='awesome'拿不到值抛出的异常
所以需要按照参数名传参
你得将test.py改一下:
import orm from models import User import asyncio
async def test(loop):
await orm.create_pool(loop=loop, user='www-data', password='www-data', db='awesome')#注意: db='awesome' 请看回orm.py的create_pool方法
u = User(name='Test', email='test@example.com', passwd='1234567890', image='about:blank')
await u.save()
loop = asyncio.get_event_loop() loop.run_until_complete(test(loop)) print('Compete !')
想请问一下@景仰之信念,在print('Compete !')后面加上loop.close(),会报错误:RuntimeError:Event loop is closed. 但是数据还是插入users表中。请问有什么好的解决办法吗?
- 1
cherishdy
import orm from models import User, Blog, Comment import asyncio
async def test(loop): await orm.create_pool(loop=loop, user = 'user', password ='password', db='awesome') u = User(name='Test', email='test@example.com', passwd='1234567890', image='about:blank') await u.save()
loop =asyncio.get_event_loop()
loop.run_until_complete(test(loop)) loop.close()