Flask - POST错误 405方法不允许

66

我刚开始学习Flask,我正在尝试创建一个可使用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错误方法不允许

为什么它没有显示"Hello"


请查看 https://dev59.com/IGkw5IYBdhLWcg3wfKrZ#55134621 - BehrouzMoslem
3个回答

49

如果方法路由为/template,那么您的表格将提交到/,除非这是一个打字错误,您应该调整表单的action属性,以指向template视图:action="{{ url_for('template') }}"


16

替换:

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

使用:

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

6
如果省略action属性,表单将提交到当前URL。
替换:
<form action="/" method="post">

使用:

<form method="post">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接