nal*_*zok 4 python flask flask-wtforms
我是网络开发的新手,这是我尝试过的:
@app.route('/login', methods=['GET', 'POST'])
def login():
attempt = 0
form = LoginForm()
if form.validate_on_submit():
flash('Login requested for OpenID="%s", remember_me=%s' %
(form.openid.data, str(form.remember_me.data)))
return redirect('/index')
attempt += 1
flash('Attempt(s)="%d"' % attempt)
return render_template('login.html',
title='Sign In',
form=form)
Run Code Online (Sandbox Code Playgroud)
输出总是Attempt(s)="1",而我希望每次form.validate_on_submit()失败时数字都会增加 1 。
我观察到当我按下Sign In按钮时,login页面被刷新。但是,我在文本字段中输入的所有文本都保留在那里,所以我认为form = LoginForm()没有执行。(如果LoginForm创建了一个全新的文本,这些文本怎么还在那里?)因此我把声明放在attempt = 0上面form = LoginForm(),希望它不是每次Sign In按下时都执行,但显然这不起作用。
我认为问题在于我不知道按下 时发生了什么Sign In。函数又login被调用了吗?如果是这样,它是由谁调用的?
以下是内容login.html:
{% extends "base.html" %}
{% block content %}
<h1>Sign In</h1>
<form action="" method="post" name="login">
{{ form.hidden_tag() }}
<p>
Please enter your OpenID:<br>
{{ form.openid(size=80) }}<br>
</p>
<p>{{ form.remember_me }} Remember Me</p>
<p><input type="submit" value="Sign In"></p>
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3174 次 |
| 最近记录: |