You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask调用validate_on_submit()提交表单返回405错误问题求助

错误原因

405状态码代表请求方法不被允许,Flask的路由装饰器默认仅支持GET请求,你当前的表单提交会发送POST请求,服务端没有配置对POST方法的支持,因此触发报错。

修复方案

修改路由装饰器,显式声明支持GET和POST两种请求方法即可,修改后的路由代码如下:

@app.route("/category/add", methods=["GET", "POST"])
def add_category():
    form = AddCategory()
    if form.validate_on_submit():
        new_category = Categories(
            title=form.name.data,
            description=form.description.data,
            review=form.review.data,
            img_url=form.img_url.data,
        )
        db.session.add(new_category)
        db.session.commit()
        return render_template("index.html")
    return render_template("add_category.html", form=form)

注意事项

  • validate_on_submit()方法仅会在POST请求下触发表单校验逻辑,添加POST方法支持后,你原有代码里的表单提交、数据入库逻辑才能正常执行
  • 所有需要处理表单提交的Flask路由,都需要在路由装饰器中显式添加methods=["GET", "POST"]配置

内容的提问来源于stack exchange,提问作者Ankur Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:36:01