我是 SQLAlchemy 的新手,正在为我当前的项目使用 Flask-SQLAlchemy。我遇到了一个让我难过的错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'flask_sqlalchemy._BoundDeclarativeMeta' is not mapped; was a class (app.thing.Thing) supplied where an instance was required?
我试过更改实例中的符号,并移动一些东西。问题可能与此有关question ,还是别的?
这是我的模块 (thing.py
),其中的类继承自 Flask-SQLAlchemy 的 db.Model
(如 SQLAlchemy 的 Base
类):
from app import db
class Thing(db.Model):
indiv_id = db.Column(db.INTEGER, primary_key = True)
stuff_1 = db.Column(db.INTEGER)
stuff_2 = db.Column(db.INTEGER)
some_stuff = db.Column(db.BLOB)
def __init__():
pass
这是我在 thing_wrangler.py
模块中填充数据库的调用:
import thing
from app import db
def populate_database(number_to_add):
for each_thing in range(number_to_add):
a_thing = thing.Thing
a_thing.stuff_1 = 1
a_thing.stuff_2 = 2
a_thing.some_stuff = [1,2,3,4,5]
db.session.add(a_thing)
db.session.commit()
最佳答案
您需要创建模型的实例。 a_thing = thing.Thing
应该是 a_thing = thing.Thing()
。注意括号。由于您覆盖了 __init__
,因此您还需要修复它,使其将 self
作为第一个参数。
关于python - 为什么在使用 Flask-SQLAlchemy 填充数据库时出现 UnmappedInstanceError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415417/