0

我在 Amazon Web Service 中有两个处理程序。我想在两者中共享一些数据,所以我使用了全局变量。其中一个用于获取一些值并将其放入全局变量中,而另一个调用 so 的处理程序可以使用在全局变量中设置的相同值,但它在另一个处理程序中给出了默认值,我已经检查过它正在设置值但在另一种情况下,它没有给出相同的值,而是给出了默认值。另一件事是相同的代码在 webfacional 中运行完美,但相同的代码没有在 AWS 中运行。请帮助我必须做的事情,并提前感谢。这里的代码是:

ipid_global = 0
uhid_global = 0

def patient_search:

     global ipid_global
     global uhid_global

     patient  = PatientInfo.objects.get(ip_id__iexact=ip_id)
     dis_advice  = PatientAdvice.objects.get(ip_id__iexact=ip_id)

     ipid_global = int(patient.ip_id)
     uhid_global = str(patient.uh_id)



def patient(request):

        global ipid_global
        global uhid_global

        ip_id = ipid_global
        uh_id = uhid_global

        return HttpResponse(ipid_global)
实际上,它是正确缩进的...
4

1 回答 1

1

永远不要这样做。

在生产中,Django(我认为这是 Django,虽然你没有这么说——我已经将它添加到标签中)在多进程环境中运行。每个进程都有自己的全局变量副本。无法确保后续请求由同一进程提供服务。

如果您需要在请求之间保持状态,请将其保存在会话中,或将其作为 URL 参数显式传递。

于 2011-08-16T10:13:08.973 回答