我的Flask App有一种非常奇怪的行为。
该应用基于Miguel Grinberg的tutorial
所以我定义了
lm.login_view = 'login'
我也有我的观点:
@app.route('/login', methods=['GET', 'POST'])
##@oid.loginhandler
def login():
print "Login started"
if g.user is not None and g.user.is_authenticated():
print "first test passed"
return redirect(url_for('index'))
form = LoginForm()
if form.validate_on_submit():
print "submit done"
session['remember_me'] = form.remember_me.data
return oid.try_login(form.openid.data, ask_for=['nickname', 'email'])
print "calling login"
return render_template('login.html',
title='Sign In',
form=form,
providers=app.config['OPENID_PROVIDERS'])
但它没有被触发。 其他视图按预期工作,所以我插入了一些打印件,以便查看Flask正在做什么,但这里根本没有打印输出。
有趣的是,我总是得到这个标准输出,但我没有定义html:
我还使用了包含引导程序的基本布局,但这看起来非常裸露。
我还重命名了视图和 lm.login_view ,但它根本没有被解雇。
你知道我在哪里可以搜索它或找到它吗?
答案 0 :(得分:0)
我终于发现了我的登录视图未被触发的问题:
Map([<Rule '/register' (HEAD, POST, OPTIONS, GET) -> register>,
<Rule '/logout' (HEAD, OPTIONS, GET) -> security.logout>,
<Rule '/login' (HEAD, POST, OPTIONS, GET) -> security.login>,
<Rule '/index' (HEAD, POST, OPTIONS, GET) -> index>,
<Rule '/login' (HEAD, POST, OPTIONS, GET) -> login>,
<Rule '/' (HEAD, POST, OPTIONS, GET) -> index>,
<Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
<Rule '/index/<page>' (HEAD, POST, OPTIONS, GET) -> index>])
正如您所看到的,我有2个登录规则,第一个指向security.login。 现在我发现这来自于导入烧瓶的安全扩展。