Flask 에서는 Python의 변수 타입 중 하나인 json (dictionary 형태) 를 return 할 수 있습니다.
참고로 Dictionary 타입은 { key1:value1, Key2:value2 } 와 같이 key와 value가 짝지어진 형태입니다.
설치 방법
from flask import Flask, jsonify
Flask jsonify 사용 방법
웹에서 json이 필요한 경우는 무엇일까요?
예를 들어, 회원 정보를 나타낼 수 있습니다.
{ User ID : 변수, User PW : tokenized, Phone number : 000-0000…}
보통 변수와 함께 나타내며 다음과 같이 사용할 수 있습니다.
(라우트 경로에 변수를 나타내는 방법에 대해 자세히 알고 싶다면 다음 글을 참고하세요!)
2024.05.10 - [분류 전체보기] - Flask 라우팅 함수와 라우트 경로에 변수 넣기
@app.route("/mypage/<string:username>")
def mypage(username):
userinfo = { 'User ID' : username, 'User PW' : 'tokenized', 'Phone number' : '000-000'}
return jsonify(userinfo)
<결과>
Flask jsonify 변수 두개 넣기
위의 예시에서는 변수를 하나만 넣었지만
변수가 여러개일 경우에는 어떻게 해야 할까요?
인자로 변수를 여러개 넣으면 됩니다.
예를 들어, user = kim (변수) 에게 어떠한 gift = rose (변수)를 줄 수 있습니다.
@app.route('/welcome/<string:gift>/<user>')
def welcomegift(gift, user):
if user == 'kim':
data = {'gift name':gift, 'user':user, 'sentence':'Gift is given'}
return jsonify(data)
else:
return f'{user}, you can\'t receive gift'
<결과>
Flask jsonify에 변수 넣기
위에서는 라우트 경로에서 변수를 넣을 경우 그 변수들을 출력해주는 것이지만
서버에 이미 변수가 설정돼있을 경우에는 어떻게 출력할 수 있을까요?
예를 들어, 유저가 이미 로그인한 상태라면, 서버는 현재 접속 중인 유저의 user name, user email 등의 정보를 알고 있습니다.
그럴 경우, 변수를 정의해주는 것이 아니라, 현재 서버가 알고있는 유저 정보를 띄어주는 것이 더욱 적절할 것입니다.
예시 코드를 보면 이해하기 쉽습니다.
# 서버가 다음 정보 (로그인한 유저)를 알고 있다고 가정
username = 'kim'
useremail = 'kim@dobetter.com'
userid = 'dobetter'
@app.route('/_get_current_user')
def get_current_user():
return jsonify(username=username,
email=useremail,
id=userid)
<결과>
'Flask' 카테고리의 다른 글
Flask render_template, jinja2, request로 웹페이지 랜더링 (0) | 2024.05.10 |
---|---|
Flask 라우팅 함수와 라우트 경로에 변수 넣기 (0) | 2024.05.10 |
Flask에서 웹페이지 만들기 위한 기본 구조 코드 (0) | 2024.05.06 |