【发布时间】:2017-05-07 12:22:58
【问题描述】:
我正在尝试在烧瓶应用程序中使用会话变量,如下所示:
from flask import Flask, session
from flask import request
from flask import render_template
from flask import redirect, url_for
app = Flask(__name__)
app.secret_key = 'verysecretindeed'
@app.route('/')
def myform():
session['ax'] = 42
return render_template("test1.html", session=session)
@app.route('/', methods=['GET', 'POST'])
def modifyvalue():
incr = request.form('incr')
a = session['ax']
if incr == '1':
a = a + 1
session['ax']=a
return render_template("test1.html", session=session)
if __name__ == '__main__':
app.run(debug=True)
这段代码在我的本地机器上运行良好。
现在,我在远程服务器上运行代码,并通过以下方式将远程服务器的本地主机连接到我的本地主机:
ssh -N -f -L localhost:5000:localhost:5000 <username>@<server>.blah.edu
现在,当我运行此代码时,在从网页获取“incr”请求后,我得到:
keyerror: 'ax' 在 modifyvalue() 函数中。
当我在 myform() 函数中打印会话时,值就在那里。但是,当我在 modifyvalue() 函数中打印会话时,会话是空的。
我试过设置 APPLICATION_ROOT 像:
app.config['APPLICATION_ROOT']= '/path/to/code/'
我尝试了其他浏览器,隐身,似乎没有任何效果。 我也尝试先在 myform() 中清除会话。我的 app.secret_key 只是一个静态字符串值。
知道可能出了什么问题吗?
【问题讨论】:
标签: python session flask session-cookies