你好我有两个用户类和ProductOwner 他们可以通过Flask-Login登录 但是当您登录并且浏览器重新访问('/')页面时,我无法将它们重定向到用户或Productowner页面,因为我不知道登录用户。如果它属于User类或ProductOwner类。我认为它使用cookie自动登录。
起初我认为它会在每次加载时运行@ lm.user_loader。但似乎不是。
@lm.user_loader
def load_user(id):
if id[0] == "u":
session['current']='u'
return User.query.get(int(id[1:]))
if id[0] == "b":
session['current']='b'
return ProductOwner.query.get(int(id[1:]))
如果您在未注销的情况下重新访问该页面,我认为它没有在代码上运行。 因为据我所知
@app.route('/')
def index():
if current_user.is_authenticated():
if session['current']=='b':
return render_template('b_loggedin.html')
elif session['current']=='u':
return render_template('userloggedin.html')
return render_template('index.html')
返回index.html
谢谢
答案 0 :(得分:0)
简短回答是从User
继承您的ProductOwner
和flask.ext.login.UserMixin
,请阅读更多here。
但是如果你想拥有一个更好的代码,你需要动态制作。依靠你身份证的一部分来识别用户类型而在另一部分上识别用户ID是一种不好的做法,将来会给你带来更多麻烦。
答案 1 :(得分:0)
谢谢Mehdi。我使用is_authenticated方法解决了我的问题,正如Mehdi所述。我在is_authenticated方法中添加了代码。
非常感谢。