【发布时间】:2015-12-10 14:52:33
【问题描述】:
我在第一个请求中设置了用户名和密码。但是,我需要在第二个请求中保留用户名和密码。我们如何在 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)
设置key后报错
TypeError: 'function' object does not support item assignment
【问题讨论】:
-
看起来可以。
-
无操作。它不起作用。
-
能否添加错误回溯?
-
尝试记录 request.form['username'] 的值并检查其是否有效。你得到了什么错误
-
不要;您不必设置
app.secret_key才能使会话正常工作吗?