我正在使用Flask-WTF:
这是我的表格:
from flask.ext.wtf import Form, TextField
class BookNewForm(Form):
name = TextField('Name')
这是控制器:
@book.route('/book/new', methods=['GET', 'POST'])
def customers_new():
form = BookNewForm()
if form.is_submitted():
print "submitted"
if form.validate():
print "valid"
if form.validate_on_submit():
flash("Successfully created a new book")
return redirect(url_for('.books_show'))
return render_template('views/books_new.html', form=form)
现在的问题是,如果您查看我的打印语句,它将始终打印已提交的内容,但从不打印有效的内容,并且永远不会执行validate_on_submit()。为什么?
您没有在HTML表单中插入CSRF字段。
<form method=post>
{{ form.csrf_token }}
{{ form.name }}
<input type=submit>
</form>
添加form.csrf_token
到模板(docs)后,表单将按预期验证。
print(form.errors)
验证表单后添加,以查看出现的错误。 errors
在验证之前将为空。在这种情况下,会出现有关丢失的错误
@book.route('/book/new_no_csrf', methods=['GET', 'POST'])
def customers_new_no_csrf():
form = BookNewForm()
print(form.errors)
if form.is_submitted():
print "submitted"
if form.validate():
print "valid"
print(form.errors)
if form.validate_on_submit():
flash("Successfully created a new book")
return redirect(url_for('.books_show'))
return render_template('books_new.html', form=form)
{}
submitted
{'csrf_token': [u'CSRF token missing']}
127.0.0.1 - - [29/May/2012 02:01:08] "POST /book/new_no_csrf HTTP/1.1" 200 -
127.0.0.1 - - [29/May/2012 02:01:08] "GET /favicon.ico HTTP/1.1" 404 -
我在GitHub上创建了一个示例。
问题内容: 该程序的目的是单击以创建圆,ballball类扩展了test1,当test1检测到鼠标单击时,即创建了ballball对象。但是paint / paintComponent方法永远不会执行。在我的程序结构中,是否可以将圆圈绘制到超类JPanel? 问题答案: 不是,它没有可以覆盖的方法。相反,您可以扩展a 并将其添加到框架中。
我有这份工作: 作业应该每小时运行一次。我以为问题是cronexpression。这就是为什么我把它改成上面的表达式。在我有这个表达之前: null
问题内容: 我使用Spring应用程序上下文来处理Java Web应用程序。在这种情况下,我使用Quartz定义了计划作业。这些作业由.properties文件中定义的cron触发。 Spring上下文嵌入战争中,而.properties文件位于应用程序服务器(在这种情况下为Tomcat)上。 这很好,并允许根据环境(开发,集成,生产等)定义不同的克朗。 现在,在我自己的计算机上本地运行此应用程序
Web应用程序的一个重要方面是为用户提供一个用户界面。 HTML提供了一个标签,用于设计一个接口。 可以适当使用表单的元素,如文本输入,广播,选择等。 通过或方法将用户输入的数据以Http请求消息的形式提交给服务器端脚本。 服务器端脚本必须从http请求数据重新创建表单元素。 所以实际上,表单元素必须被定义两次 - 一次是HTML,一次是服务器端脚本。 使用HTML表单的另一个缺点是很难(如果不是
Flask-WTF Simple integration of Flask and WTForms, including CSRF, file upload,and reCAPTCHA. Links Documentation: https://flask-wtf.readthedocs.io/ Changes: https://flask-wtf.readthedocs.io/changes/
下面是代码片段,我在其中使用了基于翻滚事件时间的窗口 不幸的是,它似乎从未执行过reduce函数。如果使用上面的代码进行窗口处理,reduce函数可以正常工作。下面是时间戳提取器的代码。30秒水印延迟仅用作测试值,但一分钟翻转窗口为m bd.longValue(),它返回秒时间戳1498658629,因为我的窗口也是以秒为单位定义的。< br >当我使用返回分钟时间戳的bd.longValue()