小编Sco*_*son的帖子

RuntimeError:“SQLAlchemy”实例已在此 Flask 应用程序上注册

我正在为我的 Flask 应用程序编写一个使用 Flask-SQLAlchemy 的测试。在 中models.py,我使用了db = SQLAlchemy(),并编写了一个函数来使用应用程序对其进行配置。但是当我运行测试时,我收到错误“RuntimeError:“SQLAlchemy”实例已在此 Flask 应用程序上注册”。我不确定测试文件在哪里创建 SQLAlchemy 的新实例。

# flaskr.py
from flask import Flask
from models import setup_db

def create_app(test_config=None):
    app = Flask(__name__)
    setup_db(app)
    return app
Run Code Online (Sandbox Code Playgroud)
# models.py
from flask_sqlalchemy import SQLAlchemy

database_path = "postgresql://student:student@localhost/bookshelf"

db = SQLAlchemy()

def setup_db(app, database_path=database_path):
    app.config["SQLALCHEMY_DATABASE_URI"] = database_path
    db.init_app(app)

    with app.app_context():
        db.create_all()
Run Code Online (Sandbox Code Playgroud)
# test_flaskr.py
import unittest

from flaskr import create_app
from models import setup_db

class BookTestCase(unittest.TestCase):
    def setUp(self):
        self.app = create_app()
        self.client = self.app.test_client()
        setup_db(self.app, "postgresql://student:student@localhost/bookshelf_test") …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

5
推荐指数
1
解决办法
9860
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1

python ×1