Open hamsunwoo opened 1 month ago
POST의 경우 header 부분에 "accept"가 아니라 "Content-type"으로 넣어줘야 합니다.
def load_data(firstname, lastname, id, passwd, email, gender, birthday, phonenumber):
if firstname and lastname and id and passwd and email and gender and birthday and phonenumber:
headers = {'Content-Type': 'application/json'}
params = {
'firstname': firstname,
'lastname': lastname,
'id': id,
'passwd': passwd,
'email': email,
'gender': gender,
'birthday': birthday,
'phonenumber': phonenumber
}
try:
response = requests.post('http://localhost:8888/login', json=params, headers=headers, timeout=7)
#if response.status_code == 201:
st.session_state['page'] = 'success' # 성공 시 페이지 상태 변경
#else:
#st.write("가입에 실패했습니다. 다시 시도해주세요.")
except Exception as e:
st.write("서버가 불안정하오니 나중에 다시 시도해주세요.")
else:
st.write("모든 항목을 입력해 주세요.")
또 다른 에러메세지
서버가 불안정하오니 나중에 다시 시도해주세요.
오류: Object of type date is not JSON serializable
해결 방법 이 오류는 datetime.date 타입의 객체가 JSON 형식으로 직렬화될 수 없다는 것을 의미. requests.post() 함수에서 JSON 데이터를 전송할 때, Python의 datetime.date 객체를 문자열로 변환. JSON은 날짜 타입을 지원하지 않기 때문에, 이를 문자열로 변환한 후 JSON으로 전송
# 서버에 POST 요청을 보내는 함수
def load_data(firstname, lastname, id, passwd, email, gender, birthday, phonenumber):
if firstname and lastname and id and passwd and email and gender and birthday and phonenumber:
headers = {'Content-Type': 'application/json'}
params = {
'firstname': firstname,
'lastname': lastname,
'id': id,
'passwd': passwd,
'email': email,
'gender': gender,
'birthday': birthday.strftime('%Y-%m-%d'), # date 객체를 문자열로 변환
'phonenumber': phonenumber
}
try:
response = requests.post('http://127.0.0.1:8888/login', json=params, headers=headers, timeout=15)
if response.status_code == 201:
st.session_state['page'] = 'success' # 성공 시 페이지 상태 변경
else:
st.write("가입에 실패했습니다. 다시 시도해주세요.")
except Exception as e:
st.write("서버가 불안정하오니 나중에 다시 시도해주세요.")
st.write(f"오류: {str(e)}")
else:
st.write("모든 항목을 입력해 주세요.")
회원가입시 버튼을누르면 API와 연결되어 가입이 완료되어야 하는데 계속 연결이 안되는 에러가 발생하였습니다.