Maison  >  Article  >  développement back-end  >  Comment utiliser Flask-CORS pour réaliser le partage de ressources entre domaines

Comment utiliser Flask-CORS pour réaliser le partage de ressources entre domaines

王林
王林original
2023-08-02 14:03:341346parcourir

Comment utiliser Flask-CORS pour réaliser le partage de ressources d'origine croisée

Introduction :
Dans le développement d'applications réseau, le partage de ressources d'origine croisée (CORS) est un mécanisme qui permet la communication entre le serveur et une origine ou un nom de domaine spécifié. Ressources partagées . Grâce à CORS, nous pouvons contrôler de manière flexible la transmission de données entre différents domaines et obtenir un accès inter-domaines sûr et fiable. Dans cet article, nous présenterons comment utiliser la bibliothèque d'extensions Flask-CORS pour implémenter la fonctionnalité CORS.

1. Qu'est-ce que CORS
CORS est un mécanisme de sécurité fourni par le navigateur, qui est utilisé pour contrôler l'accès aux ressources entre différents domaines. Dans la politique traditionnelle de même origine, les navigateurs autorisent uniquement les pages Web sous le même nom de domaine à interagir, tandis que CORS permet aux pages Web sous des noms de domaine différents de lancer des requêtes inter-domaines. CORS est contrôlé via les champs d'en-tête HTTP et interagit entre le client et le serveur.

2. Introduction à Flask-CORS
Flask-CORS est une bibliothèque d'extension CORS basée sur le framework Flask. Elle fournit une solution simple et flexible pour implémenter les fonctions CORS. Flask-CORS peut contrôler le comportement de CORS en définissant des paramètres, tels que les sources autorisées, les méthodes de requête, les en-têtes de requête, etc.

3. Installez Flask-CORS
Vous pouvez utiliser la commande pip pour installer Flask-CORS :

pip install flask-cors

4 Utiliser Flask-CORS
Ce qui suit est une application Flask de base qui montre comment utiliser Flask-CORS pour réaliser des croisements. partage des ressources de domaine :

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)  # 允许应用的所有视图都可以跨域访问

@app.route('/api/data', methods=['GET'])
def get_data():
    data = {
        'name': '小明',
        'age': 18,
        'gender': '男'
    }
    return jsonify(data)

if __name__ == '__main__':
    app.run()

Dans le code ci-dessus, nous avons d'abord importé les modules Flask et flask_cors et créé une application Flask. Ensuite, utilisez l'instruction CORS(app) pour définir toutes les vues de l'application afin qu'elles soient accessibles sur tous les domaines. Enfin, nous définissons une route qui renvoie les données au format JSON. Flaskflask_cors模块,并创建了一个Flask应用。接着,使用CORS(app)语句将应用的所有视图都设置为可以跨域访问。最后,我们定义了一个路由,返回一个JSON格式的数据。

在实际开发中,我们通常会使用更精细的设置,来灵活控制不同视图的CORS行为。下面是一个更复杂的例子:

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app, resources={
    r"/*": {
        "origins": ["http://example.com", "http://www.example.com"],
        "methods": ["GET", "POST"],
        "headers": ["Content-Type", "Authorization"]
    }
})

@app.route('/api/data', methods=['GET'])
def get_data():
    data = {
        'name': '小明',
        'age': 18,
        'gender': '男'
    }
    return jsonify(data)

if __name__ == '__main__':
    app.run()

在上面的代码中,我们通过传递一个resources参数来进行更细粒度的设置。在这个示例中,我们只允许来自example.comwww.example.com

Dans le développement réel, nous utilisons généralement des paramètres plus granulaires pour contrôler de manière flexible le comportement CORS des différentes vues. Voici un exemple plus complexe :

rrreee
Dans le code ci-dessus, nous effectuons des réglages plus précis en passant un paramètre resources. Dans cet exemple, nous autorisons uniquement les requêtes des deux noms de domaine example.com et www.example.com pour initier un accès inter-domaines. Nous spécifions également les méthodes de requête autorisées (GET et POST) et les en-têtes de requête (Content-Type et Authorization).

🎜5. Résumé🎜Dans cet article, nous avons présenté comment utiliser la bibliothèque d'extensions Flask-CORS pour réaliser le partage de ressources entre domaines. En définissant différents paramètres, nous pouvons contrôler de manière flexible la transmission de données entre différents domaines et obtenir un accès inter-domaines sûr et fiable. CORS est un mécanisme de sécurité fourni par les navigateurs, offrant aux développeurs plus de liberté et de flexibilité pour répondre aux besoins de différents scénarios d'application. 🎜

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!

Déclaration:
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