Maison > base de données > tutoriel mysql > le corps du texte

Comment corriger « RuntimeError : travail en dehors du contexte de l'application » dans les tests Flask ?

Linda Hamilton
Libérer: 2024-11-13 15:34:02
original
767 Les gens l'ont consulté

How Do I Fix

RuntimeError : Operating Outside Application Context

Dans Flask, chaque requête génère un contexte d'application qui sert de contexte pour diverses opérations. Lors du test des applications Flask, il est courant de rencontrer une erreur « RuntimeError : travailler en dehors du contexte de l'application ». Cela se produit lorsqu'une opération est tentée en dehors de ce contexte défini.

Pour résoudre ce problème, vous devez créer explicitement le contexte de requête dans vos tests unitaires. En incorporant app.app_context() dans votre test, vous établissez le contexte nécessaire pour exécuter des opérations telles que les connexions à une base de données ou le rendu de modèles :

def test_connection1(self):
with app.app_context():
object = TestMySQL()
object.before_request()
Copier après la connexion

En encapsulant le code de test dans le contexte de l'application, vous vous assurez que les opérations sont effectué dans le contexte correct et éviter l’erreur d’exécution. De plus, vous pouvez utiliser app.test_client() pour créer des clients de test qui intègrent le contexte de l'application et émulent les effets d'une requête typique sans avoir besoin d'une requête HTTP réelle.

client = app.test_client()
response = client.get('/')
assert response.status_code == 200
Copier après la connexion

En résumé, à éviter l'erreur « RuntimeError : travailler en dehors du contexte de l'application » et testez avec succès les applications Flask, utilisez app.app_context() ou app.test_client() pour établir le contexte requis pour les opérations spécifiques à la requête.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal