[python] 플라스크에 http 헤더를 얻는 방법?

파이썬을 처음 접하고 Python Flask를 사용하고 REST API 서비스를 생성합니다.

클라이언트에게 전송 된 인증 헤더를 확인하고 싶습니다.

그러나 플라스크에서 HTTP 헤더를 얻는 방법을 찾을 수 없습니다.

HTTP 헤더 인증을 얻는 데 도움을 주시면 감사하겠습니다.



답변

from flask import request
request.headers.get('your-header-name')

request.headers 사전처럼 동작하므로 다른 사전에서와 같이 헤더를 가져올 수도 있습니다.

request.headers['your-header-name']


답변

헤더가 존재하지 않는 경우 메소드 간의 차이점은

request.headers.get('your-header-name')

반환 None하거나 예외가 없으므로 다음과 같이 사용할 수 있습니다.

if request.headers.get('your-header-name'):
    ....

그러나 다음은 오류가 발생합니다

if request.headers['your-header-name'] # KeyError: 'your-header-name'
    ....

당신은 그것을 처리 할 수 ​​있습니다

if 'your-header-name' in request.headers:
   customHeader = request.headers['your-header-name']
   ....


답변

전달 된 모든 헤더를 가져 오려는 사람은 다음을 사용하십시오.

dict(request.headers)

그것은 당신이 실제로 원하는 작전을 할 수있는 dict의 모든 헤더를 제공합니다. 내 유스 케이스에서는 파이썬 API가 프록시이기 때문에 모든 헤더를 다른 API로 전달해야했습니다.


답변

Flask에서 매개 변수, 헤더 및 본문을 얻는 방법을 살펴 보겠습니다. 우편 배달부의 도움으로 설명하겠습니다.

여기에 이미지 설명을 입력하십시오

params 키와 값은 API 엔드 포인트에 반영됩니다. 예를 들어 엔드 포인트의 key1 및 key2 :
https://127.0.0.1/upload ? 1 = 값 1 & 키 2 = 값 2

from flask import Flask, request
app = Flask(__name__)

@app.route('/upload')
def upload():

  key_1 = request.args.get('key1')
  key_2 = request.args.get('key2')
  print(key_1)
  #--> value1
  print(key_2)
  #--> value2

params 후에 헤더 를 얻는 방법을 살펴 보겠습니다 .

여기에 이미지 설명을 입력하십시오

  header_1 = request.headers.get('header1')
  header_2 = request.headers.get('header2')
  print(header_1)
  #--> header_value1
  print(header_2)
  #--> header_value2

이제 을 얻는 법을 보자

여기에 이미지 설명을 입력하십시오

  file_name = request.files['file'].filename
  ref_id = request.form['referenceId']
  print(ref_id)
  #--> WWB9838yb3r47484

request.files로 업로드 한 파일과 request.form으로 텍스트를 가져옵니다.


답변