属性错误:__enter__
Posted
技术标签:
【中文标题】属性错误:__enter__【英文标题】:AttributeError: __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 __
【问题讨论】:
错误图片与代码图片不匹配。准确地发布您尝试运行的代码(不是图像)、准确地用于运行它的命令以及准确地作为错误返回的文本。 再补充一下,图片中的错误不是标题中指出的错误 请阅读why you should not upload images of code on SO when asking a question 对不起,我现在正在编辑帖子 您是否尝试使用 db = SQLAlchemy() 然后 db.init_app(app) 进行 db 初始化? 【参考方案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()
这样,它应该可以工作。
【讨论】:
以上是关于属性错误:__enter__的主要内容,如果未能解决你的问题,请参考以下文章
Python多处理错误:AttributeError:模块'__main__'没有属性'__spec__'
Django 错误:“布尔”对象没有属性“__getitem__”