1.我是参照网上的一个flask例子,http://www.pythondoc.com/flas...很苦逼,进行操作的。
2.当我在数据库原有的一张表里 添加额外的两个属性,执行migrate操作
3.之后 我去查询数据库时,涉及这两个变量总是报同样的错误,具体如下:
lower()函数 字符串应该都有这个属性的呢
我将原来的数据库进行删除,重建数据库 还是报同样的错误。有遇到过相同问题的同学,可以给点提示,谢谢!
问题一:我删除的时候,是否还有一些版本迁移的文件未删干净
问题二:是否是flask带有的缺陷,如何解决
把你添加的两个属性的代码贴出来
错误中的
'String' object
不是字符串类型,是 sqlalchemy 里的 Field 类String
'String' object
不是字符串类型,是 sqlalchemy 里的 Field 类String
更新:
#🎜🎜#更新:根据你贴的代码,
about_me
和last_seen
中db.column
拼错了应该是db.Column
根据你贴的代码,
about_me
和last_seen
中db.column
拼错了应该是db.Column
#🎜🎜#数据库迁移书上有一点没提到,每一次迁移都需要先重新创建迁移的脚本,再使用脚本进行迁移。
详见:https://zhuanlan.zhihu.com/p/...
问题一:如你所说,你将原本的数据库整个删除后重建也还是会出现此类问题,说明不是版本迁移文件的问题。
问题二:
sqlalchemy
只是其他的flask开发人员提供的拓展,所以跟flask本身没关系。sqlalchemy
只是其他的flask开发人员提供的拓展,所以跟flask本身没关系。如楼上所说,
如楼上所说,String
不是python
本身的数据类型,是sqlalchemy
提供的,所以应该是你自己定义的Model
String
不是python
本身的数据类型,是sqlalchemy
提供的,所以应该是你自己定义的Model
类的错误。你最好提供一下出错部分的代码,不然不好分析。🎜具体代码如上
我的查询命令
user = models.User.query.get(1)
print user.email (正常) user.about_me(报错) user.last_seen(报错)
column 要大写 Column 应该就不报错了