ABOUT ME

Today
Yesterday
Total
  • Python으로 REST API 구현
    개발/Python (파이썬) 2022. 5. 4. 15:10

    Flask(플라스크)를 통해서 Python으로 API Server를 만들어보자.

    Flask

    Flask(플라스크)는 간단한 Web Server를 구현해주는 Micro Web Framework이다.

    Python에 Flask 가져오기

    Flask 설치

    pip install flask

    Flask를 Python에 가져오기 (import)

    from flask import Flask

    Flask로 JSON 서비스하기

    #json을 서비스 해주기 위해서 jsonify도 import 해온다.
    from flask import Flask, jsonify
    
    result = [{'apple': 2000, 'orange': 3000}]
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def json_api():
    	#jsonify로 result를 json으로 변경하여 리턴
        return jsonify(result)
    
    
    if __name__ == "__main__":
        app.run()
        
    #http://127.0.0.1:5000에서 결과 확인.
    # [{"apple":2000,"orange":3000}]

    CORS 정책 관리

    CORS는 교차 출처 리소스 공유(Cross-Origin Resource Sharing)의 약자이다.
    교차 출처 리소스 공유에 대해서는 나중에 자세히 다루겠다.

    Flask에서 CORS을 사용하는 예제

    # 모든 곳에서 호출을 허용
    CORS(app, resources={r'*': {'origins': '*'}})
    # 또는, 이 형태도 가능
    CORS(app)
    
    # https://example.com에서의 호출을 허용
    CORS(app, resources={r'*': {'origins': 'https://example.com'}})
    
    # http://example.com:5000/under/의 하위주소를 가질때 호출이 가능하게 하는 방법 
    CORS(app, resources={r'/under/*': {'origins': 'https://example.com:5000'}})
    
    # 여러개의 도메인 주소를 허용
    CORS(application, resources={r'*': {'origins': ['https://example.com', 'http://localhost:8080']}})

    Python에서 Flask와 Flask CORS을 사용한 예제

    from flask import Flask, jsonify
    #Flask_cors를 import한다
    from flask_cors import CORS
    
    result = [{'apple': 2000, 'orange': 3000}]
    
    app = Flask(__name__)
    #CORS를 추가해준다. (모든 곳에서 호출을 허용)
    CORS(app)
    
    @app.route('/')
    def json_api():
        return jsonify(result)
    
    
    if __name__ == "__main__":
        app.run()
        
     # 다른 곳에서 GET 한 결과
    # [{"apple":2000,"orange":3000}]


    참고한 자료
    Python Flask에서 CORS Cross Origin 사용하기 (webisfree.com)

    댓글

Designed by Tistory.