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

如何解决TypeError: __init__()仅接受1个位置参数却传入2个的问题

错误原因及解决方法

错误原因

你遇到的TypeError是因为Flask-WTF版本迭代导致的初始化方式变化。3年前的教程使用的旧版Flask-WTF(如0.14.x及更早版本)要求初始化表单时传入request.form,但当前新版本的Flask-WTF(0.15+)中,表单类的__init__方法已不再接受该参数,仅需默认的self这一个位置参数,所以你传入第二个参数request.form就会触发错误。

解决方法

直接修改路由中的表单初始化代码:

  • 原代码:form = AddLocation(request.form)
  • 修改为:form = AddLocation()

新版本Flask-WTF的表单会自动从请求上下文(如POST请求的request.form)中获取数据,后续你只需要正常调用form.validate_on_submit()进行验证即可,逻辑和之前注册功能的代码保持一致。

如果需要手动填充表单数据(比如编辑场景),可以使用form.populate_obj(your_object)方法,或者直接给表单字段赋值(如form.name.data = "xxx")。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:53:16