SyntaxError:在Python/Flask代码中,名称“s”在全局声明之前使用

2024-04-23 16:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码的目标是将其放在两个EC2实例中,然后连接到负载平衡器,以便在两个实例之间分发请求

这是我的代码,我首先尝试在本地进行测试,然后在EC2实例中进行测试,最后使用负载平衡器测试所有内容

from flask import Flask,request,session
##global s
s = 0
app = Flask(__name__)

@app.route("/", methods=["GET","POST"])
def disp():
    if request.method == "GET":
        global s
        s = 0 
        return str(s)
    if request.method == "POST":
        global s
        s = request.json["num"]
        return str(s)

if __name__ =="__main__":
    app.run()
    ##app.run('0.0.0.0', port=80)

在本地运行时返回的错误是SyntaxError:名称“s”在全局声明之前使用。我尝试在导入行之后删除s=0,但错误仍然存在


Tags: 实例run代码nameappflaskgetreturn
1条回答
网友
1楼 · 发布于 2024-04-23 16:45:08

disp函数中有两个global s,第二个表示有问题,因为它在前面看到了s = 0

理想情况下,在声明函数之后放置global定义:

from flask import Flask,request,session

s = 0
app = Flask(__name__)

@app.route("/", methods=["GET","POST"])
def disp():
    global s
    if request.method == "GET":
        s = 0 
        return str(s)
    elif request.method == "POST":
        s = request.json["num"]
        return str(s)

if __name__ =="__main__":
    app.run()
    ##app.run('0.0.0.0', port=80)

也将第二个if更改为elif

相关问题 更多 >