如何在烧瓶中的路线之间共享变量(Python)

发布于 2025-02-12 01:50:03 字数 1014 浏览 0 评论 0原文

我正在尝试使用会话在烧瓶中的路线之间共享变量。这是我正在使用的代码:

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)

但是,当第二个路由打印变量时,我却一无所获。我已经使用全局变量暂时解决了此问题,但是我读到它们不是线程安全的,因此我想使用会话。

对这里有什么问题有任何想法吗?

I am trying to use sessions to share variables among routes in Flask. This is the code I am using:

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)

But when the second route prints the variables I get None. I have temporarily solved this using global variables, but I read that they are not thread safe, so I would like to use sessions.

Any idea of what is wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魔法少女 2025-02-19 01:50:03

您可以尝试使用以下方式替换“ session.get()”方法:

@app.route("/querydatabyMol", methods = ['GET'])
def querydatabyMol():
    sharedmolID = session["sharedmolID"]
    sharedsearchType = session["sharedsearchType"]
    print(sharedmolID)
    print(sharedsearchType)
    return sharedmolID

另请参见有关一个相关问题

You could try replacing the "session.get()" Method with:

@app.route("/querydatabyMol", methods = ['GET'])
def querydatabyMol():
    sharedmolID = session["sharedmolID"]
    sharedsearchType = session["sharedsearchType"]
    print(sharedmolID)
    print(sharedsearchType)
    return sharedmolID

also see this for a related problem

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文