강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Sử dụng các dịch vụ tự động hóa công việc và phát triển web dựa trên Python Flask

Hiểu cách xử lý yêu cầu GET và POST

[get과post요청 처리방식 이해]03_get_post from action 문의

Viết

·

364

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 화면이 나오네요.

 

mongodbflask

Câu trả lời 2

0

pink321ryu님의 프로필 이미지
pink321ryu
Người đặt câu hỏi

안녕하세요.

본 강의로 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 경로를 사용하는 것이 안 되는 것처럼 보이는 문제는, 서버 설정이나 다른 라우트 경로와의 충돌 가능성도 있으니 코드 전체와 함께 로그를 확인해보시는 것을 추천드립니다.

pink321ryu님의 프로필 이미지
pink321ryu
Người đặt câu hỏi

아 제 질문은,

app.py 의 @app.route("경로1", methods=['GET', 'POST']) 의 경로1과,

index.html form 의 action 의 <form action="경로2" method="post">경로2가 다른 경우에 이렇게 다르게 설정이 되도 되는 건지, 다른 경우, 어느 것이 우선되는 지에 대한 질문이었습니다.

Hình ảnh hồ sơ của pink321ryu
pink321ryu

câu hỏi đã được viết

Đặt câu hỏi