【问题标题】:AttributeError: __enter__属性错误:__enter__
【发布时间】:2019-03-31 22:06:41
【问题描述】:

我使用 sqlalchemy 在 python 中定义了一个表,但是当我尝试创建它时出现此错误

import os

from flask import Flask, render_template, request
from models import *

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("DATABASE_URL")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)

def main():
    db.create_all()

if __name__ == "__main__":
    with app.app_context().push:
        main()

错误:

Traceback(最近一次调用最后一次):文件“create.py”,第 15 行,在 with app.app_context().push(): AttributeError: __ enter __

【问题讨论】:

  • 错误图片与代码图片不匹配。准确地发布您尝试运行的代码(不是图像)、准确地用于运行它的命令以及准确地作为错误返回的文本。
  • 再补充一下,图片中的错误不是标题中指出的错误
  • 对不起,我现在正在编辑帖子
  • 您是否尝试使用 db = SQLAlchemy() 然后 db.init_app(app) 进行 db 初始化?

标签: python postgresql flask orm flask-sqlalchemy


【解决方案1】:
import os
from flask import Flask, render_template, request
from models import *

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("DATABASE_URL")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)

def main():
    with app.app_context():
       db.create_all()

if __name__ == "__main__":
    main()

这样,它应该可以工作。

【讨论】:

    猜你喜欢
    • 2022-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    相关资源
    最近更新 更多