python - 为什么在使用 Flask-SQLAlchemy 填充数据库时出现 UnmappedInstanceError?

标签 python orm flask sqlalchemy flask-sqlalchemy

我是 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/

相关文章:

python - 设置 Virtualenv 时出现问题

python - 在Python中将列表从循环迭代转换为df

nhibernate - 流利的NHibernate HasManyToMany()映射

python - 定义 numpy 数组中的列 - TypeError : invalid type promotion

python - "safe_eval"真的安全吗?

java - 如何使用 JPA (Hibernate) 创建与同一实体的关系?

java - 是否有与 QSqlTableModel 等效的 Java ORM?

python - flask / python 。从上传的文件中获取 mimetype

python - 将 Flask 类扩展为主应用程序

python - Flask - 如何使用 RotatingFileHandler 将 werkzeug 日志写入日志文件?