使用 jinja2 在 WTForm 中引发错误

2024-03-05

我试图在 Jinja2 中引发错误,在 WTForm 中,如果未验证网址输入,则应引发错误,但是当我提交无效网址时,我会收到一个弹出窗口,显示“请输入网址”。

如何传递默认弹出窗口并添加自定义错误消息?

这是主要的py:

from datetime import datetime
from flask import Flask, render_template, url_for, request, redirect,flash
from logging import DEBUG
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from flask.ext.wtf.html5 import URLField
from wtforms.validators import DataRequired , url


app = Flask(__name__)
app.logger.setLevel(DEBUG)
app.config['SECRET_KEY']='{@\x8d\x90\xbf\x89n\x06%`I\xfa(d\xc2\x0e\xfa\xb7>\x81?\x86\x7f\x1e'


@app.route('/')
@app.route('/index')

def index():
    return render_template('base.html')

@app.route('/add', methods=['GET','POST'])
def add():
    return render_template('add.html')


# HERE IS THE LOGIN FORM
class Login(FlaskForm):
    username = StringField('username')
    password = PasswordField('password')
    url = URLField('url', validators=[DataRequired(),url()])

@app.route('/form', methods=['GET','POST'])
def form():
    form = Login()
    if form.validate_on_submit():
        url = form.url.data
        return redirect(url_for('index'))
    return render_template('form.html',form = form )


if __name__ =='__main__':
    app.run(debug=True)

这是模板:

  <!DOCTYPE html>
<html>
<head>
    <title>form</title>
</head>
<body>
 <h1>Hello !</h1>
 <form method="POST" action="{{url_for('form')}}">
 {{ form.hidden_tag() }}
 {{ form.csrf_token }}
 {{ form.username.label }}
 {{ form.username }}
 {{ form.password.label }}
 {{ form.password }}
 {{ form.url.label }}
 {{ form.url }}
  {% if form.url.errors %} <p> {{error}}</p> {% endif %}
 <button type="submit">Submit</button>
 </form>
</body>
</html>

因为您使用的是数据类型URLField,这被呈现为 HTML5“url”表单字段类型。

您的浏览器会识别这一点并对提交的数据执行自己的验证:

您无法覆盖它 - 它内置于浏览器中。

如果您需要显示自定义错误消息,您可以使用TextField相反,并提供您自己的 URL 验证逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jinja2 在 WTForm 中引发错误 的相关文章

随机推荐

  • 哈希集处理以避免迭代期间陷入循环

    我正在研究图像挖掘项目 我使用 Hashset 而不是数组来避免在收集 url 时添加重复的 url 我到达了代码点以迭代包含主 url 的 Hashset 并在迭代中下载主 URL 的页面并将它们添加到哈希表中 然后继续 在迭代期间我应该
  • 数据库模式规范化检查器?

    我有兴趣了解如下操作的工具 给定一个数据库模式和一些数据 建议该模式是否可能以任何特定的范式构建 然后告诉如何分解该模式以产生进一步的规范化 基本上 是一个用于数据库模式设计的静态分析工具 与其他静态分析工具一样 这样的数据库工具不需要生成
  • Python Numpy 外积将函数列表应用于参数列表而不使用 For 循环

    我有一个数字数组和一个函数列表 我想对每个数字运行每个函数以获取矩阵 有没有一种方法可以在不使用缓慢的Python循环 映射的情况下做到这一点 import numpy arr numpy array 1 2 3 4 5 fns numpy
  • C++ 中的 Ada 子类型等效项

    C 是否提供类似于 Ada 的功能subtype缩小类型 E g type Weekday is Monday Tuesday Wednesday Thursday Friday Saturday Sunday subtype Workin
  • Xcode 7.0.1 - 无效的 Swift 支持 - 缺少 SwiftSupport 文件夹。

    我尝试在 AppStore 上发布包含 Swift 2 0 文件的应用程序 但收到以下电子邮件 亲爱的开发者 我们发现您最近的交货存在一个或多个问题 米兰情绪 要处理您的交货 必须解决以下问题 更正 无效的 Swift 支持 缺少 Swif
  • React.js - 语法错误:这是 render() 函数中的保留字

    我遇到了保留关键字 this 的错误 在下面的 React 组件中 我将状态从主组件 App js 传递到 RecipeList js 组件 然后映射数据并渲染每个 RecipeItem 组件 我只是不明白为什么会出现这个错误 React
  • gcc/g++ 输出类型

    我知道这是一个非常基本的问题 但是当我用 gcc g 编译我的 c c 代码时 在汇编器开始生成机器代码之前中间输出的类型到底是什么 是类似X86指令的东西吗 GCC的处理链如下 你的源代码 预处理的源代码 展开宏并包含 去除注释 E ii
  • iPhone Ad Hoc 分发无期限

    背景故事 我在一家开发和制造商业产品的公司工作 该产品在一个农场中可以拥有多达 100 多台专用 PC 我们每年只获得少数新客户 我们开发了一款 iPod iPhone 应用程序 可以让我们向农场发送命令并提取数据 我们的母公司非常担心将此
  • iOS 使用 UIActivityViewController 共享 CSV 文件

    我有一个共享 CSV 文件的应用程序 我还共享与内置选项 例如邮件 和外部选项 例如 Gmail 应用程序或 Evernote 完美配合的其他文件 如果我尝试共享 CSV 文件 内部邮件选项将按预期工作 但其他选项 例如 Gmail 或 E
  • 如何按类别用百分比注释计数图

    嗨 我正在尝试将百分比添加到我的countplot有 5 个类别和 2 个值 旧的和新的 我尝试添加 def 和循环如何在seaborn中的条形顶部添加百分比 https stackoverflow com questions 317494
  • React 中 Axios 调用时 API 中的 PHP-Session 发生变化

    我正在使用 PHP 编写 Api 该 Api 由 React Web 客户端调用 我使用 Axio 来调用 Api 当我向 Api 发送内容时 SessionID 不是持久的 它在每次调用后都会更改 有人有什么想法吗 简化的 PHP Api
  • 在 SWI-Prolog 中,是否有一种简单的方法可以使用 REPL 将数字从一个基数转换为另一个基数?

    在使用 REPL 的 SWI Prolog 中 可以轻松地从任何基数转换为基数 10 例如 X 16 FF X 255 X 2 11111111 X 255 然而这失败了 没想到它会起作用 但显示了我的想法 2 X 16 FF ERROR
  • 动态对象 - 运行时报告字段不存在,但可以在调试器中看到它?

    编辑 重新启动 Visual Studio 修复了此问题 无需更改代码 我有一个使用动态类型和 Expando 对象的 ConfigSection 处理程序 测试失败报告 object 不包含 SportName 的定义 我尝试在控制台中进
  • 如何获取文件的大小(以 MB(兆字节)为单位)?

    我在服务器上有一个 zip 文件 如何检查文件大小是否大于 27 MB File file new File U intranet root intranet R1112B2 zip if file gt 27 do something U
  • Go 程序中的三个后台 goroutine 是什么?

    Go 似乎在任何给定时间都至少有 4 个 goroutine 运行 另外三个不是主协程的是什么 http play golang org p MQBiLmHXBK http play golang org p MQBiLmHXBK pack
  • 存储静态错误字符串的最佳位置

    我想知道是否有人对在 C 应用程序中存储静态错误字符串的最佳实践有任何意见 我有一个 Visual Studio 2010 解决方案 它有 5 个项目 并定义了几个要通过 WCF REST Web 服务以消息形式返回的常量错误消息 我当前定
  • maven-get-plugin 突然损坏

    我不确定发生了什么 但我没有对我的 pom 进行任何更改 并且只进行了全新安装 但现在运行我的应用程序mvn gae run给我以下错误 ERROR Failed to execute goal net kindleit maven gae
  • 如何绘制正弦波图

    我有这个信号 from math import Fs 8000 f 500 sample 16 a 0 sample for n in range sample a n sin 2 pi f n Fs 如何绘制图表 这个正弦波 并将 xla
  • 如何防止 JasperReports 中的详细信息区域之间的页面拆分

    我有一份包含两个细节带的报告 第一个带显示图像 第二个带显示其文件名 然而 有时 图像会以这样的方式适合页面 以致下面的文本行没有空间 文件名将转到下一页 这看起来很愚蠢 some other contents Page 1 foto jp
  • 使用 jinja2 在 WTForm 中引发错误

    我试图在 Jinja2 中引发错误 在 WTForm 中 如果未验证网址输入 则应引发错误 但是当我提交无效网址时 我会收到一个弹出窗口 显示 请输入网址 如何传递默认弹出窗口并添加自定义错误消息 这是主要的py from datetime