发布请求时不允许使用 Flask 405 错误方法

Posted

技术标签:

【中文标题】发布请求时不允许使用 Flask 405 错误方法【英文标题】:Flask 405 Error Method Not Allowed on Post Request 【发布时间】:2020-12-13 19:53:32 【问题描述】:

我已经运行我的烧瓶程序一段时间了,突然出现 405 方法不允许错误。

Prodsearch.html

<form name="product search" action="" method="post" novalidate>
            <fieldset class="form-group">
                <legend>Database Search</legend>
                 form.hidden_tag() 
                <p>
                <h6>Search: </h6>
                 form.input(size=20) 
<!--                <input type = "file" name = "file" />-->
                % for error in form.input.errors %
                <span class="error-message"> error </span>
                % endfor %
                </p>
                <p>
                     form.submit(class="btn btn-primary") 
                </p>
            </fieldset>
        </form>

routes.py

@app.route('/')
@app.route('/Prodsearch', methods=['GET', 'POST'])
@login_required
def prodsearch():
...
    return render_template('Prodsearch.html', form=form, vol_data=data)

forms.py

class ProdSearch(FlaskForm):
    input = StringField("Enter name search key word", validators=[DataRequired()])
    submit = SubmitField("Search")

我不知道为什么突然出现这个错误。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

尝试将第一条路线更改为

@app.route('/', methods=['GET', 'POST'])

【讨论】:

在浏览器中打开“/Prodsearch”会发生什么? 它可以正常打开。它只会在提交 post 请求时中断。 尝试将第一条路由改为@app.route('/', methods=['GET', 'POST']) 酷,? 你能把我的答案标记为正确吗? (我编辑了原来的答案)

以上是关于发布请求时不允许使用 Flask 405 错误方法的主要内容,如果未能解决你的问题,请参考以下文章

不允许使用 GET405 方法(JavaScript 和 Flask)

错误:(405) 将文件上传到 https 时不允许使用方法

错误 HTTP 状态 405 ?使用 GCP 负载平衡器时不允许的方法

Angular 7:发送 post 请求给出错误 405(不允许的方法)

在 Spring MVC 中映射 Ajax 请求:不允许出现错误 405 方法

Axios POST 方法:405 方法不允许