【问题标题】:Accessing classes/models with Flask Sqlalchemy which I created through pandas.to_sql使用我通过 pandas.to_sql 创建的 Flask Sqlalchemy 访问类/模型
【发布时间】:2020-05-09 01:53:49
【问题描述】:

我正在尝试使用 Flask 开发一个网络应用程序。我想做的是:

  1. 以表格形式从客户端获取数据
  2. 使用 pandas 对表的每一行进行计算并创建多个 df,然后将它们附加到单个 df
  3. 然后使用 to_sql 将统一的 df 上传到使用 Flask SQLalchemy 的 postgres 数据库中的表 (我在这里还好)
  4. 那我想用Flask sqlalchemy来查询和编辑数据库中的表。

问题是第4步。由于我是使用to_sql函数在数据库中创建表,所以该表没有任何主键。

当我使用以下代码来反映类时:

db.Model.metadata.reflect(db.engine)

class LeaseInfo(db.Model):
    __table__ = db.Model.metadata.tables['lease_info']

    def __repr__(self):
        return self.DISTRICT

我收到以下错误: sqlalchemy.exc.ArgumentError: Mapper 映射类 LeaseInfo->lease_info 无法为映射表 'lease_info' 组装任何主键列

当我使用以下代码访问类时:

Base = automap_base()
Base.prepare(db.engine, reflect = True)
LeaseInfo = Base.classes.lease_info

我收到以下错误:第 212 行,在 __getattr__ 提高属性错误(键) 属性错误:lease_info

我看到一些建议说我首先用所有列定义类,然后附加 to_sql,但我希望能够更动态地完成它。

【问题讨论】:

    标签: python pandas flask-sqlalchemy


    【解决方案1】:

    最终在应用程序中定义类 (db.Model),然后使用 pd.to_sql 将数据附加到模型,但如果可能的话,仍然想知道更短的方法。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      相关资源
      最近更新 更多