总结一下出现的问题
Topic source本文增加数据或者查询的前提是需要数据库test以及表user已经创建好的,也可以使用代码 Base.metadata.create_all()来创建表,但是前提是在定义Base的时候需要传递数据库连接即
Base = declarative_base(engine)
而不能像列子里面那样不传递参数,关于SQLALchemy的一些用法可以参考:https://www.cnblogs.com/minseo/p/15305003.html
- 1
本文增加数据或者查询的前提是需要数据库test以及表user已经创建好的,也可以使用代码 Base.metadata.create_all()来创建表,但是前提是在定义Base的时候需要传递数据库连接即
Base = declarative_base(engine)
而不能像列子里面那样不传递参数,关于SQLALchemy的一些用法可以参考:https://www.cnblogs.com/minseo/p/15305003.html
晴天也想拥有一只猫咪
1、sqlalchemy.exc.NotSupportedError: (mysql.connector.errors.NotSupportedError) Authentication plugin 'caching_sha2_password' is not supported
原因:在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。
解决方法:看到前面@黯128的
engine =create_engine('mysql+mysqlconnector://user:password@localhost:port/database?auth_plugin=mysql_native_password')我试下了没成功,和网上查的说的方式都是一样的,改加密规则。我一开始安装的驱动是mysql-connector,看到有个帖子说下另一个驱动mysql-connector-python,于是就可以了。
2、原错误不见了,大概的意思是test.user not exist
原理我不是很懂,我一开始以为class User(Base)那已经是新建了一个表。实则好像并不是这个意思,看了@叫是先生去test数据库里加了user这个表就可以了。
3、 sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry '5' for key 'user.PRIMARY'
原因就是new_user已经新加之后可以删除了,然后再进行查询了,不然就电脑以为还要新建。用的是pycharm,IDLE应该不会影响。