我们如何在第二个请求python中保留先前的请求值

时间:2015-03-11 05:47:21

标签: python session flask

我在第一个请求中设置了用户名和密码。但是,我需要在第二个请求中保留用户名和密码。我们如何在python中执行此操作? 我正在使用python Flask框架。 http://flask.pocoo.org/docs/0.10/quickstart/#sessions 在这篇文章中显示了这样的会议。

from flask import Flask, session, redirect, url_for, escape, request

app = Flask(__name__)

@app.route('/')
def index():
    if 'username' in session:
        return 'Logged in as %s' % escape(session['username'])
    return 'You are not logged in'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return '''
        <form action="" method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

我试过这样的事情。

from flask import Flask, session, redirect, url_for, escape, request

session['username']= 'Tin Tin'

但我得到运行时错误。任何提示?

更新了代码,

@app.route('/session/')
def session():
    session['tmp'] = 'hey it is working'
   # print session['tmp']
   # session.pop('tmp', None)
  #  print session['tmp']
    return render_template('hello.html', name ='session')


if __name__ == "__main__":
    app.secret_key = 'tsdhisiusdfdsfaSecsdfsdfrfghdetkey'
    app.run(debug=True)

设置好密钥后,我收到错误

TypeError: 'function' object does not support item assignment

1 个答案:

答案 0 :(得分:3)

不要将路由方法命名为“会话” - 您与flask.session冲突。

from flask import Flask, session, render_template

app = Flask(__name__)

@app.route('/session/')
def set_session():
    session['tmp'] = 'hey it is working'
    return render_template('hello.html', name ='session')

if __name__ == "__main__":
    app.secret_key = 'tsdhisiusdfdsfaSecsdfsdfrfghdetkey'
    app.run(debug=True)