【发布时间】:2020-06-02 16:12:38
【问题描述】:
我的代码的目标是将其放入两个 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: Name 's' is used before global declaration。我尝试在导入行之后删除 s=0 但错误仍然存在。
【问题讨论】:
-
你不应该在第 2 行从头开始使 s 全局化吗?
-
@JakobF 全局范围已经意味着变量是全局的。您引用的注释行根本不需要。
global s表示要覆盖全局变量的内容。 -
我不确定您要在这里实现什么,但可能值得注意的是
s只是全局每个进程。通常,您在每台服务器上运行具有多个进程的应用程序,因此即使只有一个 EC2 实例,您也会收到不同/不可预测的s值。
标签: python python-3.x amazon-web-services flask amazon-ec2