728x90
2024.09.24 - [분류 전체보기] - [FastAPI] 파이썬으로 서버 만들기
데이터 받기
1. 주소 뒤에 데이터 넣어 보낼 때
2. Body를 이용해서 데이터 보낼 때
- form으로
- json으로
주소 뒤에 데이터 넣어 보낼 때
@app.get("/login/{user_id}")
def login(user_id):
return {"id": user_id}
주소 뒤에 {변수명}을 쓰고
함수에 같은 이름으로 매개변수를 입력 받는다.
두 가지도 가능
@app.get('/login/{id}&{password}')
def login(id, password):
if id == 'abcd' and password == '1234':
return {'message': '로그인 되었습니다.'}
else:
return {'message': '로그인에 실패했습니다.'}
하지만 이 방법은 데이터가 노출되기 때문에 보안에 취약해 잘 쓰지 않는 방법이다.
Body Form을 이용해서 데이터 보낼 때
from fastapi import Form
@app.get('/login')
def login(id:str=Form(...), password:str=Form(...)):
if id == 'abcd' and password == 1234:
return {'message': '로그인 되었습니다.'}
else:
return {'message': '로그인에 실패했습니다.'}
함수에 매개변수로 입력 받는다.
변수명:자료형=Form()
필수 필드: Form(...)
기본 값: Form(사용자가 입력하지 않으면 대체될 기본값)
참고
https://rudaks.tistory.com/entry/fastapi-Form-Data-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0
Body JSON을 이용해서 데이터 보낼 때
클래스를 만든다
from pydantic import BaseModel
class IdPw(BaseModel):
id : str
pw : int
@app.get('/login')
def login(idpw:IdPw):
if idpw.id == 'abcd' and idpw.pw == 1234:
return {'message': '로그인 되었습니다.'}
else:
return {'message': '로그인에 실패했습니다.'}
JSON은 쌍따옴표(")를 사용 해야 한다