概述
在里面:
lm = LoginManager() lm.init_app(app) lm.login_view = 'login'
意见/ login.py:
@app.lm.user_loader def load_user(id): return models.user.user_with_id(id) @app.before_request def before_request(): g.user = current_user print 'current_user: %s,g.user: %s,leaving bef_req' % (current_user,g.user) @app.route('/login',methods=['GET','POST']) def login(): print 'in login,g.user: %s' % g.user if g.user is not None and g.user.is_authenticated(): return redirect(url_for('index')) enter_form = app.forms.EnterForm() if enter_form.validate_on_submit(): session['remember_me'] = True return app.models.user.try_register(enter_form.email.data,enter_form.password.data) return render_template('index.html',enter_form=enter_form,profiles=[])
意见/ index.py:
@app.route('/','POST']) @app.route('/index','POST']) def index(): print 'in index,g.user: %s' % g.user if not g.user: return redirect(url_for('login')) return render_template('index.html')
车型/ user.py:
def try_login(email,password,remember_me): u = user_with_email(email) if u and authenticate(u,password): login_user(u,remember=remember_me) return app.views.index.go_to_index() def try_register(email,role=ROLE_USER): if not user_with_email(email): add_user(password,role=role,email=email) return try_login(email,password)
你还应该将remember_me放在try_register调用中.
最后在登录函数中调用regsiter函数并在寄存器中调用try_login是很奇怪的.模式有点凌乱:)
总结
以上是编程之家为你收集整理的python – flask g.user和before_request全部内容,希望文章能够帮你解决python – flask g.user和before_request所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧