복붙노트

[PYTHON] 플라스크 - POST 오류 405 메소드가 허용되지 않음

PYTHON

플라스크 - POST 오류 405 메소드가 허용되지 않음

나는 방금 플라스크를 배우기 시작했고 POST 메서드를 사용할 수있는 폼을 만들려고합니다. 내 방법은 다음과 같습니다.

@app.route('/template', methods=['GET', 'POST'])
def template():
    if request.method == 'POST':
        return "Hello"
    return render_template('index.html')

그리고 내 index.html :

<html>
  <head>
    <title> Title </title>
  </head>
  <body>
    Enter Python to execute:
    <form action="/" method="post">
      <input type="text" name="expression" />
      <input type="submit" value="Execute" />
    </form>
  </body>
</html>

양식을로드 (GET을받을 때 렌더링)하면 정상적으로 작동합니다. 그러나 제출 버튼을 클릭하면 POST 405 오류가 발생합니다. 왜 그것이 표시되지 않습니다여보세요?

해결법

  1. ==============================

    1.양식이 오타가 아닌 한 / template에 대한 경로가 제출 될 때 / 양식이 제출 될 때 템플릿보기를 가리 키도록 양식의 작업 속성을 조정해야합니다. action = "{{url_for ( 'template')}}"

    양식이 오타가 아닌 한 / template에 대한 경로가 제출 될 때 / 양식이 제출 될 때 템플릿보기를 가리 키도록 양식의 작업 속성을 조정해야합니다. action = "{{url_for ( 'template')}}"

  2. ==============================

    2.바꾸다:

    바꾸다:

     <form action="/" method="post">
    

    와:

     <form action="{{ url_for('template') }}" method="post">
    
  3. ==============================

    3.action 속성을 생략하면 양식이 현재 URL에 게시됩니다.

    action 속성을 생략하면 양식이 현재 URL에 게시됩니다.

    바꾸다:

    <form action="/" method="post">
    

    와:

    <form method="post">
    
  4. from https://stackoverflow.com/questions/12179593/flask-post-error-405-method-not-allowed by cc-by-sa and MIT license