我想从会话中获取用户名而不是url中的参数

时间:2015-06-02 07:33:58

标签: flask flask-login

@main.route('/about')
def user():
     return '<h1>Hello,%s</h1>' %user.email;

@main.route('/about/<username>')
def user(username):
    user = User.query.filter_by(username=username).first();
    return '<h1>Hello,%s</h1>' %user.email;

我可以从会话或浏览器cookie中获取用户名吗?所以我可以设置路由简洁。我该怎么办?

1 个答案:

答案 0 :(得分:1)

是的,如果您在会话中存储用户名,则只能使用flask's capabilities(请参阅登录和注销部分)。这可以在登录页面上完成,即:

@main.route('/login')
def login():
    ...
    session["username"] = loggedin_username;

@main.route('/about')
def user():
    if 'username' in session:
        return '<h1>Hello,%s</h1>' % session["username"];
    return '<h1>Hello, Anonymous</h1>';

您还可以参考flask-login docs以便如何在登录对象中保留用户名,这比将其保留在会话对象中更安全。