HOWTO · Flask

플라스크 jsonify

이 가이드는 jsonify가 무엇인지 확인하고 플라스크에 덤프합니다.

이 가이드는 jsonify가 무엇인지 확인하고 flask에서 덤프합니다. flask.jsonifyjson.dump의 용도는 무엇이며 차이점은 무엇입니까?

그럼 더 이상 기다리지 않고 바로 들어가 보겠습니다.

flask.jsonify()json.dumps() 사용

이 두 함수 사이에는 약간의 차이만 있기 때문에 flask.jsonify()json.dumps()를 혼동하는 사람들이 점점 더 많아지는 것 같습니다.

작동 방식 측면에서 둘 사이의 차이점은 처음에 보이는 것처럼 어렵지 않습니다.

이러한 차이점을 쉽게 이해할 수 있도록 json.dumps()flask.jsonify()를 사용해야 하는 주요 질문에 답해 보겠습니다. 그러나 먼저 json.dumps()가 무엇인지 살펴보겠습니다.

json.dumps() 메서드

먼저 JSON 파일을 읽거나 쓰는 동안 json 패키지를 사용해야 합니다. 이 패키지에는 Python으로 작성된 데이터를 JSON 파일로 변환하는 json.dumps()라는 메서드가 포함되어 있습니다.

이 메서드는 Python으로 작성된 모든 데이터를 변환하고 문자열로 반환하며 이제 JSON 파일로 읽힙니다.

json.dumps() 메서드의 예는 도시 목록의 이름을 지정하는 데 사용됩니다.

@app.route("/")  # display on "home" page
def list_of_cities_dumps():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return json.dumps(
        cities
    )  # json.dump() method is being used to call the list of cities


if __name__ == "__main__":
    app.run(debug=True)

출력:

[{'name': 'Central City', 'country': 'USA'}, {'name': 'Ottawa', 'country': 'Canada'}]

위의 예와 같이 도시 목록의 출력이 표시됩니다. 읽을 수 있지만 사용자가 학교 학생에 대한 데이터를 가지고 있다고 상상해보십시오.

명확한 데이터 구성이 없기 때문에 이 방법을 사용하면 학생을 구분하기 어려울 것입니다.

그래서 이 결함을 극복하기 위해 flask.jsonify() 함수가 도입되었습니다.

flask.jsonify() 함수

flask.json 모듈에서 jsonify는 Flask의 함수입니다. Flask 프레임워크를 사용할 때 HTTP 응답으로 데이터를 보내려면 flask.jsonify() 함수를 사용해야 합니다.

이 기능을 사용하려면 flask를 가져와야 합니다.

이 함수는 데이터를 JSON 파일로 변환한 다음 서버가 클라이언트 요청에 응답하는 데 사용되는 응답 개체를 반환합니다.

변환된 JSON 파일은 새로 생성된 응답 객체에 추가됩니다. 콘텐츠 유형 헤더 필드를 application/JSON으로 설정하면 일반적으로 미디어 유형으로 알려진 적절한 MIME 유형도 추가됩니다.

미디어 유형 또는 MIME 유형과 함께 파일을 보낼 때 메시지와 함께 파일 유형을 나타냅니다.

위의 동일한 예를 통해 flask.jsonify()의 작업을 더 자세히 이해해 보겠습니다.

@app.route("/")  # displays on the "home" page
def list_of_cities():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return jsonify(
        cities
    )  # the function jsonify is used here to call the list of cities


if __name__ == "__main__":
    app.run(debug=True)

출력:

[
  {
    "country": "USA",
    "name": "Central City"
  },
  {
    "country": "Canada",
    "name": "Ottawa"
  }
]

출력에서 볼 수 있듯이 도시 목록의 출력은 json.dumps() 메서드를 사용했을 때와 비교하여 구성되고 이해하기 쉽습니다.

아래 코드는 두 예제의 조합입니다.

from flask import Flask, jsonify
import json

app = Flask(__name__)


@app.route("/")
def list_of_cities():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return jsonify(cities)


@app.route("/1")
def list_of_cities_dumps():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return json.dumps(cities)


if __name__ == "__main__":
    app.run(debug=True)