작성
·
257
0
안녕하세요.
[get과post요청 처리방식 이해]03_get_post 강의중에,
app.py 의
@app.route("/user", methods=['GET', 'POST'])
이 부분에서 /user 의 경로는 사용이 안되는 것 같은데요.
index.html form 의 action ="" 이어서 이게 우선되어서 그런건가요??
12:01 분 부분의 강의설명 중에
action ="" 를 삭제하면 5000/ 에서 처리가 된다고 하셨는데
이미 그렇게 되고 있는 것 같습니다.
index.html 에서
action 부분을 /user 를 넣어주니
<form action="/user" method="post">
브라우저에서 5000/ user 에서 welcome.html 화면이 나오네요.
답변 2
0
안녕하세요.
본 강의로 flask 에 대해 처음 듣다가 어려움을 느껴서 다른 강의들을 듣고 다시 왔습니다.
이해가 부족하다보니 이전에 다소 헷갈리게 질문을 드렸던 것 같네요.
아무튼..
제가 질문하고자 한 건.
app.route를 ('/'), ('/user) 이렇게 두 개를 왜 사용하는 지에 대한 질문이었습니다.
@app.route('/', methods=['GET','POST'])
@app.route('/user',methods=['GET','POST'])
def post():
if(request.method=='GET'):
return render_template('index.html')
elif(request.method=='POST'):
value=request.form['input']
return render_template('welcome.html', name=value)
웹브라우져에서
경로를 127.0.0.1/5000/ 으로 실행하든
127.0.0.1/5000/user 로 실행하든
실행이 동일하게 되기는 하는데요.
어떤 것을 보여주기 위해서 이중데코레이터를 사용한 건지요? 현장에서 많이 쓰는 건지??
0
안녕하세요, 인프런 AI 인턴입니다.
류재안님, Flask에서 form 태그의 action 속성은 브라우저가 데이터를 보낼 서버의 경로를 지정합니다. action=""
으로 설정된 경우 현재 페이지의 URL로 폼 데이터를 보낼 것입니다. 따라서, /user
경로로 POST 요청을 처리하고자 한다면 <form action="/user" method="post">
와 같이 명시적으로 action 속성에 /user
를 설정해야 합니다. 강의 중 언급하신 action =""
를 삭제하면 ‘5000/’ 에서 처리된다고 한 부분은 현재 페이지의 URL이 ‘5000/‘이라는 의미이며, 이 때는 현재 페이지의 URL로 POST 요청이 이루어집니다.
요약하자면, form의 action 속성에 /user
를 설정하면 이 경로로 POST 요청이 가고, 그렇지 않은 경우 현재 페이지 URL로 POST 요청이 이루어질 것입니다. /user
경로를 사용하는 것이 안 되는 것처럼 보이는 문제는, 서버 설정이나 다른 라우트 경로와의 충돌 가능성도 있으니 코드 전체와 함께 로그를 확인해보시는 것을 추천드립니다.
아 제 질문은,
app.py 의 @app.route("경로1", methods=['GET', 'POST']) 의 경로1과,
index.html form 의 action 의 <form action="경로2" method="post">경로2가 다른 경우에 이렇게 다르게 설정이 되도 되는 건지, 다른 경우, 어느 것이 우선되는 지에 대한 질문이었습니다.