文章内容

2021/1/11 14:25:16,作 者: 黄兵

appears to be a non-schema 'sqlalchemy.sql.colu mn()' object

在使用SQLAlchemy件库的过程中,出现如下警告:

SAWarning: Attribute 'continent_name_en' on class <class 'app.models.IPCrawlerContinent'> appears to be a non-schema 'sqlalchemy.sql.colu

mn()' object; this won't be part of the declarative mapping

出现问题的原因:

app.models.IPCrawlerContinent上的continent_name_en不是SQLAlcehmy.sql.column的对象,不会成为申明的一部分。

出错代码:

class IPCrawlerContinent(db.Model):
__tablename__ = 'ip_crawler_continent'
id = db.Column(db.Integer, primary_key=True)
name_zh = db.Column(db.String(32))
continent_name_en = db.column(db.String(64))

检查了好久没有看出来到底哪里除了问题。

参考了别人的问题,是由于column首字母小写,正确写法应该是大写。

解决方案:

class IPCrawlerContinent(db.Model):
__tablename__ = 'ip_crawler_continent'
id = db.Column(db.Integer, primary_key=True)
name_zh = db.Column(db.String(32))
continent_name_en = db.Column(db.String(64))


参考资料:

1、SQLAlchemy warning: column won't be part of the declarative mapping


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - appears to be a non-schema 'sqlalchemy.sql.column()' object

分享到:

发表评论

评论列表