Flask CORS

Salman Mehmood 15 Februar 2024
Flask CORS

Mit dieser Erklärung lernen wir ein Problem kennen, das auftritt, wenn wir APIs in der Flask-App erstellen, und wie man einen Fehler beim Zugriff auf eine Flask-App von einer anderen Domäne aus behebt.

Behebung von Cross-Origin-Probleme mit der CORS-Klasse in Flask

Manchmal erstellen wir eine API, aber wir haben kein Problem damit, diese dem Benutzer bereitzustellen, aber wenn wir in das Front-End integriert werden, tritt dieses Problem auf; Dies ist eine ursprungsübergreifende Anfrage, die wir lösen müssen.

Wir werden erörtern, wie das vom Front-End gemeldete Problem behoben werden kann, normalerweise von Front-End-Entwicklern, da wir uns zunächst bei der Erstellung der API in Flask nicht mit den Schritten befassen, die zur Behebung dieses CORS unternommen würden Problem, das für Cross-Origin Resource Sharing steht.

Im ersten Schritt müssen wir ein eingebautes Modul namens Flask-Cors installieren; Sobald dieses Modul installiert ist, werden wir es in unserer Anwendung verwenden.

pip install Flask-Cors

Jetzt müssen wir CORS importieren, und dieses Modul ist für alle Arten von CORS-Problemen verantwortlich; Es wird in der Lage sein, jede Anfrage vom Front-End zu lösen.

from flask_cors import CORS

Jetzt müssen wir eine Flask-Anwendung erstellen und diese App in die CORS-Klasse einschließen, damit diese App für die Annahme jeder Anfrage verantwortlich ist. Dies kann eine direkte Anfrage auf der Route oder andere Anfragen sein.

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)

Es gibt einige Möglichkeiten, wie wir dies in unserer App verwenden können; am einfachsten ist es, die ganze App in die Klasse CORS() einzupacken; Im vorherigen Beispiel haben wir uns angesehen, wie das geht.

Zweitens können wir definieren, auf welche Domain wir Zugriff gewähren möchten und was wir in unserer App für bestimmte Dinge zulassen.

Lassen Sie uns eine Variable namens cors erstellen und dann einige Optionen übergeben, die erste ist die App selbst und die zweite resources, ein Schlüsselwortargument, mit dem wir angeben können, worauf wir Zugriff gewähren möchten.

Wir verwenden reguläre Ausdrücke, dann setzen wir innerhalb der Anführungszeichen eine Route und nach dem Schrägstrich können wir einen bestimmten Benutzer angeben oder wir können ein Sternchenzeichen übergeben, um allen Benutzern Zugriff zu gewähren.

Danach definieren wir, auf welche Domains wir Zugriff gewähren, also müssen wir origins eingeben; dann können wir ihm eine Liste von Ursprüngen oder Domänen geben, denen der Zugriff gestattet ist.

In unserem Fall übergeben wir ihm ein Sternchen für jede Domain im Internet, die auf alle unsere API-Routen zugreifen kann.

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)

Jetzt führen wir den Server aus, gehen zum Browser und schauen uns dann an, was im Entwicklermodus passiert. Wir sehen, dass Access-Control-Allow-Origin für alle Domains erlaubt ist.

Beheben Sie Cross-Origin-Probleme mit der CORS-Klasse in Flask

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn