ホームページ  >  記事  >  バックエンド開発  >  Flask-CORS を使用してクロスドメインのリソース共有を実現する方法

Flask-CORS を使用してクロスドメインのリソース共有を実現する方法

王林
王林オリジナル
2023-08-02 14:03:341284ブラウズ

Flask-CORS を使用してクロスオリジン リソース共有を実現する方法

はじめに:
ネットワーク アプリケーション開発では、クロスオリジン リソース共有 (クロス オリジン リソース共有、CORS と呼ばれます) は、サーバーが指定されたソースまたはドメイン名とリソースを共有できるようにするメカニズム。 CORS を使用すると、異なるドメイン間のデータ送信を柔軟に制御し、安全で信頼性の高いクロスドメイン アクセスを実現できます。この記事では、Flask-CORS 拡張ライブラリを使用して CORS 機能を実装する方法を紹介します。

1. CORS とは
CORS はブラウザによって提供されるセキュリティ メカニズムであり、異なるドメイン間のリソースへのアクセスを制御するために使用されます。従来の同一オリジン ポリシーでは、ブラウザーは同じドメイン名にある Web ページの対話のみを許可しますが、CORS では、異なるドメイン名にある Web ページがクロスドメイン要求を開始することができます。 CORS は HTTP ヘッダー フィールドを通じて制御され、クライアントとサーバーの間でやり取りされます。

2. Flask-CORS の紹介
Flask-CORS は、Flask フレームワークに基づく CORS 拡張ライブラリであり、CORS 関数を実装するためのシンプルで柔軟なソリューションを提供します。 Flask-CORS は、許可されたソース、リクエスト メソッド、リクエスト ヘッダーなどのパラメータを設定することで CORS の動作を制御できます。

3. Flask-CORS をインストールする
pip コマンドを使用して Flask-CORS をインストールできます:

pip install flask-cors

4. Flask-CORS を使用する
以下は基本的な Flask アプリケーションですこれは、Flask-CORS を使用してクロスドメイン リソース共有を実現する方法を示しています:

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()

上記のコードでは、最初に Flask モジュールと flask_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 パラメーターを渡すことで、より詳細な設定を行っています。この例では、クロスドメイン アクセスを開始するために、2 つのドメイン名 example.comwww.example.com からのリクエストのみを許可します。また、許可されるリクエスト メソッド (GET および POST) とリクエスト ヘッダー (Content-Type および Authorization) も指定します。

5. 概要
この記事では、Flask-CORS 拡張ライブラリを使用してクロスドメインのリソース共有を実現する方法を紹介しました。異なるパラメータを設定することで、異なるドメイン間のデータ送信を柔軟に制御し、安全で信頼性の高いクロスドメインアクセスを実現します。 CORS はブラウザーによって提供されるセキュリティ メカニズムであり、開発者にさまざまなアプリケーション シナリオのニーズを満たすための自由と柔軟性を提供します。

以上がFlask-CORS を使用してクロスドメインのリソース共有を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。