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

标签 python session flask

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

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

最佳答案

不要将路由方法命名为“session” - 这会与 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)

关于python - 我们如何在第二个请求 python 中保留先前的请求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979449/

相关文章:

python - Streamlabs API 405 响应代码

php - 获取登录用户的列表 PHP

c# - session 在其他计算机上可见吗?

php - 带下一个/上一个按钮的下拉菜单 php

php - C++代码的Web前端

python - FB Messenger API 响应太多

python - 没有名为资源的模块(安装 Flask-Mail)

python - Conda 环境中的 LD_LIBRARY_PATH

python - ActiveMQ-带有Python STOMP客户端的STOMP + SSL

python - 打印具有不同条目数的表