Flask CORS

Salman Mehmood 15 febrero 2024
Flask CORS

Aprenderemos con esta explicación sobre un problema que surge cuando creamos la API en la aplicación Flask y cómo corregir un error al acceder a una aplicación Flask desde un dominio diferente.

Solucionar problemas de origen cruzado usando la clase CORS en Flask

A veces creamos una API, pero no tenemos ningún problema para servir esto al usuario, pero cuando vamos a integrarnos con el front-end, surge este problema; esta es una solicitud de origen cruzado que debemos resolver.

Discutiremos cómo resolver el problema informado desde el front-end, normalmente el informe de los desarrolladores de front-end, porque inicialmente, cuando creamos la API en Flask, no echamos un vistazo a los pasos que se tomarían para resolver este CORS. tema que significa intercambio de recursos de origen cruzado.

En el primer paso, necesitamos instalar un módulo incorporado llamado Flask-Cors; una vez que este módulo esté instalado, lo usaremos en nuestra aplicación.

pip install Flask-Cors

Ahora necesitamos importar CORS, y este módulo es responsable de todo tipo de problemas de CORS; podrá resolver cualquier solicitud desde el front-end.

from flask_cors import CORS

Ahora necesitamos crear una aplicación Flask y envolver esa aplicación en la clase CORS para que esta aplicación sea responsable de aceptar cualquier solicitud. Puede ser una solicitud directa en la ruta u otras solicitudes.

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)

Hay algunas formas en que podemos usar esto en nuestra aplicación; la forma más sencilla es envolver toda la aplicación en la clase CORS(); en el ejemplo anterior, hemos visto cómo hacerlo.

En segundo lugar, podemos definir a qué dominio queremos dar acceso y qué cosas específicas estamos permitiendo en nuestra aplicación.

Vamos a crear una variable llamada cors y luego pasar algunas opciones, la primera será la aplicación en sí y la segunda será recursos, que es un argumento de palabra clave donde podemos especificar a qué queremos permitir el acceso.

Estamos usando expresiones regulares, luego, dentro de las comillas, pondremos una ruta, y después de la barra inclinada, podemos especificar un usuario específico, o podemos pasar un signo de asterisco para permitir el acceso a todos los usuarios.

Después de eso, definimos a qué dominios permitiremos el acceso, por lo que tenemos que escribir orígenes; luego, podemos darle una lista de orígenes o dominios a los que se permite el acceso.

En nuestro caso, le estamos pasando un signo de asterisco para cualquier dominio en Internet que pueda acceder a todas nuestras rutas 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)

Ahora ejecutaremos el servidor, iremos al navegador y luego veremos lo que sucede dentro del modo de desarrollador. Podemos ver que Access-Control-Allow-Origin está permitido para todos los dominios.

Solucionar problemas de origen cruzado usando la clase CORS en 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