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.com
と www.example.com
からのリクエストのみを許可します。また、許可されるリクエスト メソッド (GET および POST) とリクエスト ヘッダー (Content-Type および Authorization) も指定します。
5. 概要
この記事では、Flask-CORS 拡張ライブラリを使用してクロスドメインのリソース共有を実現する方法を紹介しました。異なるパラメータを設定することで、異なるドメイン間のデータ送信を柔軟に制御し、安全で信頼性の高いクロスドメインアクセスを実現します。 CORS はブラウザーによって提供されるセキュリティ メカニズムであり、開発者にさまざまなアプリケーション シナリオのニーズを満たすための自由と柔軟性を提供します。
以上がFlask-CORS を使用してクロスドメインのリソース共有を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。