Discuss / Python / 总结一下

总结一下

Topic source

这个错误搞了一天,最后终于搞定了, 首先,按理说,test(),廖老师把他当作生成器处理,所以用for循环。。。 但是好像会报错;就是连接池那句话会卡住,挂了,不知道为什么。

如果作为协程处理,按照app中的语法来就行了。

loop=loop 是可以不用加入的,如果报错的话,请把orm中的创建语句改成

def create_pool(loop=None, **kw):    #传递默认参数,aiomysql里面对NONE会设定默认的消息循环函数 get_event_loop()

这样还是会爆出,事件循环终止的语句,不知道是不是错误 好像通过修改一下sys,语句可以不报错,但是其实东西已经存进去了

database改成db没有必要,但是注意aiomysql里面一定要写db,因为aiomysql的kw参数是认db, 不认database的

如果出现2003:什么连不上MySQL服务器的话。。。。。

这个问题我上stackoverflow查了半天,大家的说法都是host有问题或者mysql没运行。

但是看来看去port或者host或者mysql 都没问题!

搞了3 ,4个小时也看了一下报错的py文件,没看懂。。。。都是懵逼的字符串要么系统或者socket操作

最后上知乎我发现!!!!!

这个问题是原因是你的aiomysql 可能封装了PyMySql,然后pYMYSQL 升级了一下,现在最新版本是0.7.0,这个版本可能和yield from 有的问题。。。。

如果你用的是pycharm的话,可以卸载pymysql和aiomysql, 再安装aiomysql。。。。,会自动安装0.6.7的pymysql,也就是正确版本。

这个故事告诉我们,没事别瞎升级!!!!

不过讲道理不是应该向下兼容的吗!!!!!!!!!!!

还有一点,手动创建数据库的部分是必须要做的,因为这里的python部分好像只能得到连接池,廖老师通过mysql的grant语句,把awesome数据库的授权给了用户名为www,识别码为www的用户。

不知道excute语句能不能直接做,估计应该可以生成脚本

果然还是aiomysql版本的问题。 谢谢了


  • 1

Reply