project/back_flask/app.py
from flask import Flask, request, jsonify #1
app = Flask(__name__)
app.id_count = 1
app.users = {} #key = 사용자 아이디, value = 딕셔너리에 저장된 사용자 정보
@app.route('/ping', methods=['GET'])
def ping() :
return "pong"
@app.route("/sign-up", methods=["POST"])
def sign_up():
new_user = request.json #2
new_user["id"] = app.id_count #3
app.users[app.id_count] = new_user #4
app.id_count = app.id_count + 1 #5
return jsonify(new_user) #6
if __name__ == "__main__":
app.run(host="0.0.0.0", port="8080")
# 1 : request - 사용자가 HTTP 요청을 통해 전송한 JSON 데이터를 읽음
jsonify - 딕셔너리 객체를 JSON으로 변환하여 HTTP 응답으로 보냄
# 2 : request.json : HTTP 요청(POST)을 통해 전송된 JSON 데이터를 파이썬 딕셔너리로 변환
# 3 : 회원가입 정보에 id값을 더해줌
# 4 : 회원가입 하는 사용자의 정보를 딕셔너리에 저장 (key = 사용자 아이디, value = 회원가입 정보)
# 5 : 다음에 가입하는 회원아이디를 하나씩 올려줌 (기존가입자와 중복 방지)
# 6 : 회원 가입한 사람의 정보를 JSON 형태로 전송.
1 . 회원가입 HTTP 요청 보내기
http -v POST localhost:8080/sign-up name=파이썬 email=flask_app@gmail.com
2. 결과
# 자꾸 Max retries exceeded with url 에러남
대체 뭐가 문제일까..ㅠㅠ 이런에러가 안났었는데..!!
해결!!
1. vscode로 app.py실행
2. 터미널 창 따로 열어서 http 요청 날려줌
작동 성공!!
3. JSON이란?
- 데이터 교환 포맷 (보통 서버-웹 애플리케이션 사이에서 사용)
- 사람이 읽을 수 있는 문서로 구성
- 경량 데이터 형식
- name/value 형태의 쌍으로 된 collection 타입 (파이썬의 딕셔너리랑 거의 같음)
- 사용자 정보를 받아오는 데이터 형태로 많이 사용됨
# 예시
{
"Influencers" : [
{
"name" : "Jaxon",
"age" : 42,
"Works At" : "Tech News"
}
]
}
참고 : 책 [깔끔한 파이썬 탄탄한 백엔드]
'Python > Flask' 카테고리의 다른 글
[미니터] sqlalchemy를 사용한 API와 DB 연결 (0) | 2022.07.12 |
---|---|
[미니터] 타임라인 (0) | 2022.07.07 |
[미니터] 팔로우와 언팔로우 (0) | 2022.07.07 |
[미니터] 트윗올리기 (0) | 2022.07.06 |
[미니터] 객체 생성, 엔드포인트 등록 (0) | 2022.07.05 |