HOWTO · Flask

Flask CORS

Cette explication concerne un problème qui survient lorsque nous créons une API dans l'application Flask et comment corriger une erreur lorsque nous essayons d'accéder à une application Flask à partir d'un domaine différent.

Sur cette page

Nous apprendrons avec cette explication un problème qui survient lorsque nous créons une API dans l’application Flask et comment corriger une erreur lors de l’accès à une application Flask à partir d’un domaine différent.

Résoudre les problèmes d’origine croisée à l’aide de la classe CORS dans Flask

Parfois, nous créons une API, mais nous n’avons aucun problème à la servir à l’utilisateur, mais lorsque nous allons être intégrés au front-end, ce problème survient ; il s’agit d’une requête cross-origin que nous devons résoudre.

Nous discuterons de la manière de résoudre le problème signalé dans le rapport des développeurs frontaux, normalement frontaux, car initialement, lorsque nous créons l’API dans Flask, nous ne regardons pas les étapes qui seraient prises pour résoudre ce CORS. question qui représente le partage des ressources d’origine croisée.

Dans un premier temps, nous devons installer un module intégré appelé Flask-Cors ; une fois ce module installé, nous l’utiliserons dans notre application.

pip install Flask-Cors

Maintenant, nous devons importer CORS, et ce module est responsable de tous les types de problèmes CORS ; il sera en mesure de résoudre toute demande du front-end.

from flask_cors import CORS

Nous devons maintenant créer une application Flask et encapsuler cette application dans la classe CORS afin que cette application soit responsable de l’acceptation de toute demande. Il peut s’agir d’une requête directe sur la route ou d’autres requêtes.

from flask import Flask, Response
from json import dumps
from flask_cors import CORS

app = Flask(__name__)
CORS(app)


@app.route("/", methods=["GET"])
def User_Access():
    return Response(dumps({"User_KEY": "ADB11081"}), mimetype="text/json")


app.run(port=5000)

Il existe plusieurs façons de l’utiliser dans notre application ; le moyen le plus simple est d’envelopper toute l’application dans la classe CORS() ; dans l’exemple précédent, nous avons vu comment procéder.

Deuxièmement, nous pouvons définir à quel domaine nous voulons donner accès et ce que nous autorisons à une chose spécifique dans notre application.

Créons une variable appelée cors puis passons quelques options, la première sera l’application elle-même, et la seconde sera “ressources” qui est un argument mot-clé où nous pouvons spécifier ce à quoi nous voulons autoriser l’accès.

Nous utilisons des expressions régulières, puis à l’intérieur des guillemets, nous mettrons une route, et après la barre oblique, nous pouvons spécifier un utilisateur spécifique, ou nous pouvons passer un astérisque pour autoriser l’accès à tous les utilisateurs.

Après cela, nous définissons à quels domaines nous allons autoriser l’accès, nous devons donc taper origines; ensuite, nous pouvons lui donner une liste d’origines ou de domaines auxquels l’accès est autorisé.

Dans notre cas, nous lui transmettons un astérisque pour tout domaine sur Internet pouvant accéder à toutes nos routes API.

from flask import Flask, Response
from json import dumps
from flask_cors import CORS

app = Flask(__name__)


cors = CORS(app, resources={r"/*": {"origins": "*"}})


@app.route("/", methods=["GET"])
def User_Access():
    return Response(dumps({"User_KEY": "ADB11081"}), mimetype="text/json")


app.run(port=5000)

Nous allons maintenant exécuter le serveur, accéder au navigateur, puis examiner ce qui se passe dans le mode développeur. Nous pouvons voir que Access-Control-Allow-Origin est autorisé pour tous les domaines.

Résoudre les problèmes d’origine croisée à l’aide de la classe CORS dans Flask