>백엔드 개발 >파이썬 튜토리얼 >Flask-CORS를 사용하여 도메인 간 리소스 공유를 달성하는 방법

Flask-CORS를 사용하여 도메인 간 리소스 공유를 달성하는 방법

王林
王林원래의
2023-08-02 14:03:341420검색

Flask-CORS를 사용하여 출처 간 리소스 공유를 달성하는 방법

소개:
네트워크 애플리케이션 개발에서 CORS(Cross-Origin Resource Sharing)는 서버와 지정된 출처 또는 도메인 이름 간의 통신을 허용하는 메커니즘입니다. . CORS를 사용하면 서로 다른 도메인 간의 데이터 전송을 유연하게 제어하고 안전하고 안정적인 도메인 간 액세스를 달성할 수 있습니다. 이 기사에서는 Flask-CORS 확장 라이브러리를 사용하여 CORS 기능을 구현하는 방법을 소개합니다.

1. CORS란 무엇입니까
CORS는 브라우저에서 제공하는 보안 메커니즘으로, 서로 다른 도메인 간의 리소스에 대한 액세스를 제어하는 ​​데 사용됩니다. 기존 동일 출처 정책에서 브라우저는 동일한 도메인 이름 아래의 웹페이지만 상호 작용하도록 허용하는 반면, CORS는 다른 도메인 이름 아래의 웹페이지가 교차 도메인 요청을 시작하도록 허용합니다. 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-CORS를 사용하여 교차 작업을 수행하는 방법을 보여주는 기본 Flask 애플리케이션입니다. 도메인 리소스 공유:

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

위 코드에서는 먼저 Flaskflask_cors 모듈을 가져오고 Flask 애플리케이션을 만들었습니다. 다음으로, CORS(app) 문을 사용하여 도메인 전체에서 액세스할 수 있도록 애플리케이션의 모든 보기를 설정합니다. 마지막으로 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

실제 개발에서는 일반적으로 다양한 뷰의 CORS 동작을 유연하게 제어하기 위해 보다 세부적인 설정을 사용합니다. 다음은 더 복잡한 예입니다.

rrreee
위 코드에서는 resources 매개변수를 전달하여 더욱 세부적인 설정을 수행합니다. 이 예에서는 교차 도메인 액세스를 시작하기 위해 두 도메인 이름 example.comwww.example.com의 요청만 허용합니다. 또한 허용되는 요청 방법(GET 및 POST)과 요청 헤더(Content-Type 및 Authorization)를 지정합니다.

🎜5. 요약🎜이 기사에서는 Flask-CORS 확장 라이브러리를 사용하여 도메인 간 리소스 공유를 달성하는 방법을 소개했습니다. 다양한 매개변수를 설정함으로써 다양한 도메인 간의 데이터 전송을 유연하게 제어하고 안전하고 안정적인 도메인 간 액세스를 달성할 수 있습니다. CORS는 브라우저에서 제공하는 보안 메커니즘으로, 개발자에게 다양한 애플리케이션 시나리오의 요구 사항을 충족할 수 있는 더 많은 자유와 유연성을 제공합니다. 🎜

위 내용은 Flask-CORS를 사용하여 도메인 간 리소스 공유를 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.