我想将请求中的数据分配给在代码中多个位置使用的变量currentKampjson。但是,当我尝试将currentKampjson分配给任何被声明为新变量的东西时,这适用于每个变量。
currentKampjson是一个字典类型变量
currentKampjson = {"info":1, "info2":3}
@app.route("/stream/currentkamp")
def streamCurrentKamp():
return render_template("stream/currentKamp.html", kamp = currentKampjson)
@app.route("/currentKamp/getKamp")
def getCurrentKamp():
return jsonify(currentKamp)
print(currentKampjson)
@app.route("/currentKamp/update", methods=["POST"])
def updateCurrentKamp():
indata = eval(request.data)
currentKampjson = indata
with open("jsonFiles/kamper/currentKamp.json","w") as f:
json.dump(indata, f)
return "SUCCESS"
即使我在这里使用currentKampjson,此代码也可以正常运行:
@app.route("/currentKamp/update", methods=["POST"])
def updateCurrentKamp():
indata = eval(request.data)
print(currentKampjson)
#currentKampjson = indata
with open("jsonFiles/kamper/currentKamp.json","w") as f:
json.dump(indata, f)
return "SUCCESS"
在当前情况下,您需要对global
变量使用关键字,但是在通常情况下,全局变量不是一个好习惯。
您可以在此处阅读有关范围的更多信息:
https://realpython.com/python-scope-legb-rule/ https://matthew-brett.github.io/teaching/global_scope.html
currentKampjson = {"info":1, "info2":3}
@app.route("/stream/currentkamp")
def streamCurrentKamp():
global currentKampjson
return render_template("stream/currentKamp.html", kamp=currentKampjson)
@app.route("/currentKamp/getKamp")
def getCurrentKamp():
return jsonify(currentKamp)
print(currentKampjson)
@app.route("/currentKamp/update", methods=["POST"])
def updateCurrentKamp():
global currentKampjson
indata = eval(request.data)
currentKampjson = indata
with open("jsonFiles/kamper/currentKamp.json", "w") as f:
json.dump(indata, f)
return "SUCCESS"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句