我正在尝试使用会话在Flask中的路由之间共享变量。这是我使用的代码:
from flask import Flask, jsonify, request, session
from flask_cors import CORS
from flask_session import Session
app = Flask(__name__)
CORS(app)
SESSION_TYPE = 'filesystem'
app.config.from_object(__name__)
app.secret_key = 'abc'
@app.route("/getinputData", methods = ['POST'])
def getData():
inputData = json.loads(request.data)
molID = inputData["ID"]
searchType = inputData["searchType"]
session["sharedmolID"] = molID
session["sharedsearchType"] = searchType
return inputData
@app.route("/querydatabyMol", methods = ['GET'])
def querydatabyMol():
sharedmolID = session.get("sharedmolID", None)
sharedsearchType = session.get("sharedsearchType", None)
print(sharedmolID)
print(sharedsearchType)
return sharedmolID
if __name__ == '__main__':
app.run(debug=True)
sess = Session()
sess.init_app(app)
但是当第二个路由打印变量时,我得到None。我使用全局变量暂时解决了这个问题,但我读到它们不是线程安全的,所以我想使用会话。
你知道这是怎么回事吗?
您可以尝试替换' session.get() ';方法:
@app.route("/querydatabyMol", methods = ['GET'])
def querydatabyMol():
sharedmolID = session["sharedmolID"]
sharedsearchType = session["sharedsearchType"]
print(sharedmolID)
print(sharedsearchType)
return sharedmolID
也可以查看相关问题