Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich beim Testen meiner Flask-App die Fehlermeldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?

Warum erhalte ich beim Testen meiner Flask-App die Fehlermeldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 03:13:02751Durchsuche

Why Am I Getting

Fehlerbehebung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“

Im bereitgestellten Code ist beim Zugriff auf Datenbankmethoden eine Ausnahme aufgetreten aus der Unit-Test-Datei. Insbesondere wird der Fehler „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ ausgelöst, wenn die Funktion „before_request“ und die Route „input_info“ aus der Datei test.py aufgerufen werden.

Um dieses Problem zu beheben und Datenbankinteraktionen innerhalb zu ermöglichen Bei den Unit-Tests muss sichergestellt werden, dass der Flask-Anwendungskontext korrekt eingerichtet ist. Der Flask-Anwendungskontext verwaltet den anforderungsspezifischen Status, einschließlich Datenbankverbindungen. Wenn Sie Tests außerhalb des Kontexts einer Anfrage ausführen, ist es erforderlich, den Anwendungskontext manuell einzurichten.

Hier ist eine modifizierte Version Ihres Testcodes in test.py, die die notwendigen Änderungen enthält:

from app import app
from app import TestMySQL

class Test(unittest.TestCase):
    def test_connection(self):
        with app.app_context():
            object = TestMySQL()
            object.before_request()
            cursor = g.db.cursor()
            cursor.execute ('CREATE TABLE IF NOT EXISTS testmysql (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40) NOT NULL, \
                     email VARCHAR(40) NOT NULL UNIQUE)')
            cursor.close()

Indem wir den Testcode in den app.app_context()-Aufruf einschließen, stellen wir den Anwendungskontext her und stellen sicher, dass die erforderlichen Datenbankverbindungsobjekte verfügbar sind. Dadurch wird die Ausnahme „RuntimeError: Arbeiten außerhalb des Anwendungskontexts“ behoben und ermöglicht den erfolgreichen Zugriff auf die Datenbankmethoden während der Komponententests.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Testen meiner Flask-App die Fehlermeldung „RuntimeError: Arbeiten außerhalb des Anwendungskontexts'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn