如何在使用 flask 和 sqlachemy 时访问 db.create_all() 时修复此错误

问题描述 投票:0回答:0
from flask import Flask ,render_template,redirect,url_for,request

from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)
app.config\["SQLALCHEMY_DATABASE_URI"\] = "sqlite:///Blognet.sqlite"
db = SQLAlchemy(app)
class Blognet(db.Model):

   Srno = db.Column(db.Integer, primary_key=True)
   Title = db.Column(db.String, unique=True, nullable=False)
   Description = db.Column(db.String, unique=True, nullable=False)
   time_stamp = db.Column(db.DateTime, default = datetime.utcnow)


   def __repr__(self) -> str:
        return f"{self.Srno} - {self.Title}"

@app.route("/") 
def index():
    return render_template("index.html")

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

if __name__  == "__main__" :
app.run(debug = True)

from app import db
db.create_all()  

回溯(最后一次通话): 文件“”,第 1 行,在 文件“H:\learn\python lask_harry_1 nv\lib\site-packages lask_sqlalchemy xtension.py”,第 884 行,在 create_all self._call_for_binds(bind_key, "create_all") 文件“H:\learn\python lask_harry_1 nv\lib\site-packages lask_sqlalchemy xtension.py”,第 855 行,在 _call_for_binds 中 引擎 = self.engines[key] 文件“H:\learn\python lask_harry_1 nv\lib\site-packages lask_sqlalchemy xtension.py”,第 636 行,在引擎中 app = current_app._get_current_object() # 类型:ignore[attr-defined] 文件“H:\learn\python lask_harry_1 nv\lib\site-packages\werkzeug\local.py”,第 513 行,在 _get_current_object 中 从 None 引发 RuntimeError(unbound_message) RuntimeError:在应用程序上下文之外工作。

这通常意味着您尝试使用需要的功能 当前的应用程序。为了解决这个问题,设置一个应用程序上下文 与 app.app_context()。有关详细信息,请参阅文档。

请告诉我如何解决这个问题

flask sqlalchemy orm
© www.soinside.com 2019 - 2024. All rights reserved.