Flask로 GET, POST 요청 보내기 (2)
HTML파일 리턴
저번 시간에는 GET, POST 요청을 보내는 예제를 했었습니다.
POST 요청을 보낸 뒤 입력 받은 값을 직접 리턴 시켜주었는데요. 그렇다면
이번에는 html 파일을 리턴 시켜볼까요?
전에 다뤘던 내용이지만 복습차원에서 한 번 더 하도록 하겠습니다.
소스 코드를 작성하기 전 ‘default’라는 이름을 가진 html 파일을 만들도록 하겠습니다.
html 파일 내부는 이렇게 작성도록 할게요.
이제 app.py 에서 html 파일을 리턴시켜서 입력을 한 후에 ‘Reddit’이 보이도록 하면 되겠죠?
이렇게 하면 되겠죠? 실행시켜보도록 하겠습니다.
역시 잘 나오네요!
그런데 이 부분 뭔가 불편하지 않나요?
GET요청을 받는 ‘/test’라는 url이 있고 POST요청을 받는 ‘/post’라는 url이 따로 있습니다.
이것을 하나로 합칠 수는 없을까요? 하나의 url에서 GET요청과 POST요청을 모두 받을 수 있게 말이죠.
당연히 할 수 있습니다!! 그렇다면 소스를 간단하게 고쳐볼까요?
request.method
라는 것은 처음 보실텐데요, 클라이언트에서 넘어온 method를 ‘GET’, ‘POST’ 로 각각 나누어 처리한 것입니다.
POST요청을 나눌 때 왜
else
를 쓰지 않고elif
를 쓰는지 궁금하실 수도
있는데,method
에 GET, POST 만 있는 것이 아니라 PUT, DELETE 라는 method도 있기 때문에elif
로 나누어 주었습니다.
이렇게 한다면 ‘/test’ url에서 GET요청과 POST요청을 모두 받을 수 있겠군요.
여기서 잠깐! 실행시켜보신 분들은 정보를 입력 후 submit 버튼을 누르면 오류가 나셨을거예요.
이렇게 말이죠… 왜 그럴까요?
이유는 바로 ‘post.html’ 이놈에게 있습니다.
어디가 문제인지 보기 위해서 html 파일을 열어보도록 할게요.
action 부분이 이상하군요. 저희는 분명히 ‘/post’ url을 없애고 ‘/test’ 라는 url로 GET, POST 요청을 받고 있는데 이 html 은 ‘/post’로 form을 보내고 있어요.
action 부분을 비우도록 하겠습니다.
이제 잘 실행이 되겠죠? 다시 실행시켜 보겠습니다.
잘 실행이 되는군요!
이번 시간은 저번 시간에 이어 GET, POST 요청을 효과적으로 보내는 것에 대해 포스팅 해보았습니다. 이것으로 마치겠습니다.
- Flask로 GET, POST 요청 보내기 (1)
- Flask로 GET, POST 요청 보내기 (2) — HTML파일 리턴