我在第一个请求中设置了用户名和密码。但是,我需要在第二个请求中保留用户名和密码。我们如何在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
答案 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)