当前位置: 首页 > 知识库问答 >
问题:

python - Python Flask 应用中 NameForm 对象为何没有 'validate_on_submite' 属性?

翟兴邦
2024-05-27

python小白,今天按课本上的实例写了如下代码,运行后一直报错:AttributeError: 'NameForm' object has no attribute 'validate_on_submite'
,上网查之后说是可能导入了两个Form,导致后面的Form覆盖前面导入的Form,我仔细地核对了一遍,并没有发现这个问题,已经校对了一下午,仍不能运行,通过自查也不能解决,现向各位大佬求助。另外,我的VScode不能识别validate_on_submite,也不知道什么原因,截图如下:

from flask_wtf import FlaskFormfrom wtforms import StringField, SubmitFieldfrom wtforms.validators import DataRequiredfrom flask import Flask, render_template, session, redirect,url_for# from collections.abc import Sequence# import _collections_abc# from typing import Any, Mappingapp=Flask(__name__)app.config["SECRET_KEY"] = "123456"class NameForm(FlaskForm):    name = StringField('What is your name?', validators=[DataRequired()])    submit = SubmitField('Submit')@app.route("/",methods=["GET", "POST"])def index():    name=None    form = NameForm()    if form.validate_on_submite():         name = form.name.data        form.name.data = ''    return render_template('index1.html', form=form, name=name)    #     old_name=session.get("name")    #     if old_name is not None and old_name !=form.name.date:     #         flash("看看你输入的什么")    #     session["name"] = form_name_data    #     return redirect(url_for("index"))    # return render_template("index1.html",form = form, name = session.get("name"))if __name__=="__main__":    app.run(debug=True)

求助各位大佬

共有1个答案

卢作人
2024-05-27

validate_on_submite 是一个拼写错误。正确的方法名称应该是 validate_on_submit。在你的 Flask 视图函数 index 中,你应该调用 form.validate_on_submit() 而不是 form.validate_on_submite()

请按照以下步骤更正你的代码:

  1. 找到你的视图函数 index
  2. 修正 validate_on_submitevalidate_on_submit

更正后的代码段应该如下所示:

@app.route("/", methods=["GET", "POST"])def index():    name = None    form = NameForm()    if form.validate_on_submit():  # 正确的方法名        name = form.name.data        form.name.data = ''    return render_template('index1.html', form=form, name=name)

保存你的文件并重新运行 Flask 应用,错误应该会消失。此外,VS Code 无法识别 validate_on_submite 是因为它不是一个有效的方法名,VS Code 的智能提示和错误检查是基于你的代码和已安装的库中的方法/属性进行的。当你使用正确的方法名时,VS Code 应该可以正常识别它。

记得,在编程时,拼写和大小写都是非常重要的,因为 Python 是大小写敏感的。在调用方法或访问属性时,确保你使用正确的名称和正确的大小写。

 类似资料:
  • 问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形

  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在尝试从中文网站中抓取一些javascript生成的内容。我正在使用Selenium(和Python),因为我无法直接抓取javascript内容。 我得到以下错误: 实际上,我似乎无法在selenium.selenium类中调用任何命令。毫无疑问,我忽略了非常明显的事情。提前致谢。 问题答案: 您只需要。 执行以获取页面上的html元素(最大的元素)。(您可以通过多种方式执行此操

  • 问题内容: 我正在尝试使用(Python)将“ ENTER”传递给文本字段。文本框要求在新行中输入每个电话号码,因此它将类似于: 我已导入以下库: 我遇到的问题是它失败了: AttributeError:“ WebElement”对象没有属性“ sendKeys” 有谁知道如何解决这个问题?我一直在寻找解决方案,但找不到任何东西。 问题答案: 尝试使用而不是如下:-

  • 问题内容: 我正在使用python 3.3.3。我正在从tutorialspoint.com做本教程。我无法理解此错误是什么。 这是我的代码: 错误: 问题答案: 您在这里遇到问题有两个原因。第一个是您以只写模式创建的。您需要一个可以读写的文件对象。您还可以使用关键字在完成处理后自动销毁文件对象,而不必担心手动关闭它: 第二个是(就像您非常强烈地指出的错误一样)文件对象(文本文件对象)没有方法。您

  • 问题内容: 我只是在做一个OpenCV中特征检测的例子。该示例如下所示。它给我以下错误 模块”对象没有属性“ drawMatches” 我已经检查了OpenCV文档,但不确定为什么会出现此错误。有人知道为什么吗? 错误: 问题答案: 该函数不是Python界面的一部分。 正如您在docs中看到的那样,它仅在当前定义。 摘录自文档: 如果该函数具有Python接口,则会发现以下内容: 编辑 实际上,