我是网络开发的新手,只是将我的第一个django网络应用拼凑在一起,并使用mod_wsgi与apache集成。 该应用程序有15个参数,您可以在其中查询多个SQL Server数据库,结果可以下载为.xls文件;已在公司网络上部署相同的内容。
问题是当我在一台机器上访问Web应用程序并设置查询参数时,当我尝试从另一台机器(Web客户端)打开它时,在Web应用程序中设置相同的参数。 就像只有一个全局对象被提供给所有Web客户端。
使用django模板标签在应用程序的html页面中设置值。
不使用django项目中的任何模型,因为我正在查询已经构建的SQL Server DB。
我的views.py中的查询功能看起来像
def query(self,request):
"""
"""
print "\n\n\t inside QUERY PAGE:",request.method,"\n\n"
self.SummaryOfResults_list = []
if self.vmd_cursor != -1:
self.vmd_cursor.close()
if request.method == 'POST':
QueryPage_post_dic = request.POST
print "\n\nQueryPage_post_dic :",QueryPage_post_dic
self.err_list = []
self.err_list = db_qry.validate_entry(QueryPage_post_dic)
if len(self.err_list):
return HttpResponseRedirect('/error/')
else:
channel_numbers,JPEG_Over_HTTP,Codec,format,rate_ctrl,transport,img_sz,BuildInfo_versions, self.numspinner_values_dic = db_qry.process_postdata(QueryPage_post_dic, self.numspinner_values_dic)
return self.get_result(request,channel_numbers,JPEG_Over_HTTP,Codec,format,rate_ctrl,transport,img_sz,BuildInfo_versions)
else:
print "\nself.Cam_Selected_list inside qry :",self.Cam_Selected_list
if (len(self.Cam_Selected_list) != 1):
return HttpResponseRedirect('/error/')
self.tc_dic,self.chnl_dic,self.enbl_dic,self.frmt_dic,self.cdectyp_dic,self.imgsz_dic,self.rtctrl_dic,self.jpg_ovr_http_dic,self.trnsprt_dic,self.cdec_dic,self.typ_dic,self.resolution_dic, self.vmd_cursor = populate_tbls.Read_RefTbls(self.Cam_Selected_list[0])
c = self.get_the_choices(self.Cam_Selected_list[0])
c['camera_type']= self.Cam_Selected_list[0]
for k,v in self.numspinner_values_dic.items():
c[k] = v
self.vmd_cursor.execute("SELECT DISTINCT [GD Build Info] FROM MAIN")
res_versions = self.vmd_cursor.fetchall()
version_list = []
ver_list = ['',' ']
for version in res_versions:
tmp_ver = version[0].encode()
if (tmp_ver not in ver_list):
version_list.append(tmp_ver)
c['build_info'] = version_list
print "\n\n c dic :",c
c.update(csrf(request))
return render_to_response('DBQuery.html',c)
并且传递给render_to_response的字典包含设置复选框和多选框(dojo)的值
感谢
答案 0 :(得分:2)
就像只有一个全局对象被提供给所有Web客户端。
你所说的可能就是正在发生的事情。除非你在每个请求中构建该示例代码中self
的任何对象,否则它将在客户端之间实际上随机共享。
答案 1 :(得分:0)
您可以将全局变量存储在您正在使用的SQL DB中。这样,您可以在请求中保留变量的值/状态 - >响应周期。
如果您需要更快的响应时间,请在内存数据存储区(例如redis)中探索Key-> Value Pair。
要添加到AKX提到的内容,我建议您阅读HTTP请求 - > HTTP响应周期和Web应用程序的工作原理。