카테고리 없음

[FastAPI] 데이터 받기

왕초보코딩러 2024. 9. 25. 20:30
728x90

 

2024.09.24 - [분류 전체보기] - [FastAPI] 파이썬으로 서버 만들기

 

[FastAPI] 파이썬으로 서버 만들기

파이썬으로 서버를 만들기 위한 프레임 워크1. Flask2. Django 3. FastAPI 이 중 쉽고 빠른 FastAPI로 서버를 만들어 보겠습니다.FastAPI 장점: 비동기 지원동기: 클라이언트 요청이 오면 하나를 처리하고

dogfoot1.tistory.com

 

데이터 받기

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

 

[fastapi] Form Data 처리하기

1. Form Data란?Form Data는 웹 폼에서 사용자가 입력한 데이터를 서버에 제출할 때 사용되는 데이터 형식이다. 일반적으로 application/x-www-form-urlencoded 또는 multipart/form-data로 인코딩되어 전송된다. 이

rudaks.tistory.com

 


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은 쌍따옴표(")를 사용 해야 한다