Python 如何使用Flask/Jinja2查看会话变量?

Python 如何使用Flask/Jinja2查看会话变量?,python,session,flask,sqlalchemy,Python,Session,Flask,Sqlalchemy,有人能告诉我如何在flask中查看会话变量,以便检索当前登录的用户吗?使用我的“for循环”,我可以查看迭代的所有项目,但我需要当前登录的用户 提前谢谢 app.py engine = create_engine('sqlite:///dude.db', echo=True) app = Flask(__name__) @app.route('/') def home(): if session.get('logged_in'): Session = sessionmak

有人能告诉我如何在flask中查看会话变量,以便检索当前登录的用户吗?使用我的“for循环”,我可以查看迭代的所有项目,但我需要当前登录的用户

提前谢谢

app.py

engine = create_engine('sqlite:///dude.db', echo=True)
app = Flask(__name__)
@app.route('/')
def home():
    if session.get('logged_in'):
        Session = sessionmaker(bind=engine)
        s = Session()
        user = s.query(User.username)
        for i in user:
            print i
        return render_template('index.html', user = user)
    else:
        return render_template('index.html')

看起来你混淆了这两件事:

  • SQLAlchemy中的数据库会话(例如,是SQLAlchemy的东西)
Flask会话的一般模式(例如,使用密钥的签名加密cookie,必须设置
密钥
配置才能使用这些密钥)如下所示:

from flask import session, redirect, url_for, render_template


@app.route('/login/')
def login():
    # logic to sign in user
    # then set session variable
    session['profile'] = {"user_id": 5, "user_name": "Tom"}

    return redirect(url_for('main'))


@app.route('/logout/')
def logout():
    # logic to sign out user
    # clear session
    session.clear()

    return redirect(url_for('main'))


@app.route('/')
def main():
    user = None
    if 'profile' in session:
        user = session['profile']
    return render_template('index.html', user=user)

谢谢,我花了很多时间在这上面,并且还在努力学习。我想做的就是提取当前用户名,以便显示它。应该没那么难。如果你使用flask登录,你就可以。既然你已经在烧瓶生态系统中,为什么不使用?