【问题标题】:python flask sqlalchemy - working with sqlite database from python terminalpython flask sqlalchemy - 从 python 终端使用 sqlite 数据库
【发布时间】:2019-10-12 18:37:07
【问题描述】:

我有一个 python 脚本 app.py 使用 Flask 和 SQLAlchemy 来制作一个 Web 应用程序。

我在 app.py 脚本中有一个表格

class NutritionConsumed(db.Model):
    __tablename__ = 'nutritionconsumed'
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable=False )
    item = db.Column(db.String(200), nullable=False)

在同一个文件夹中,我有我的 sqlite 数据库“test.db”。在浏览器中运行一切正常,我可以读取和显示表格中的数据。

但是,如何在 Python shell 终端中访问该数据库?

在与我的 Web 应用所在的同一目录中启动 python 时,如果我运行

>>> nutritionconsumed.query.all()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'nutritionconsumed' is not defined

但在我的 test.db 中,我确实有一个营养消耗表。

【问题讨论】:

  • 这与数据库无关。这是基本的 Python:如果你想访问一个类,你需要导入它 - 并使用你定义的名称,即 NutritionConsumed 而不是 nutritionconsumed
  • 错误说明了一切。 nutritionconsumed is not defined 表示变量nutritionconsumed 不存在。

标签: python flask terminal sqlalchemy


【解决方案1】:

nutritionconsumed 是表名,默认不存在该变量。 如果要查询此模型,则必须导入其类并改用类名。

NutritionConsumed.query.all()

【讨论】:

    【解决方案2】:

    在 Flask 中,表的类表示称为 Model。用户的模型需要导入才能使用,就像 Python 中的所有其他类一样:

    from app import NutritionConsumed
    NutritionConsumed.query.all()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-26
      • 2020-04-11
      • 2010-12-03
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 2020-03-05
      • 2020-08-13
      相关资源
      最近更新 更多