【发布时间】:2015-11-19 17:11:10
【问题描述】:
我有一个发送 XML 请求的视图,以获取响应并在模板中呈现响应。但是现在我遇到了一个问题,当两个用户向不同的 Web 服务发出请求时,模板中的数据显示了最后一个请求的数据。
当多个用户向不同的Web服务或同一个Web服务发出请求时,我不知道如何处理。
我想为每个用户动态生成一个模板,但我不知道如何处理 url。
我的看法:
def LeerXMLResponseView(request):
archivo_request = request.GET.get('xml')
ws_service = request.GET.get('servicio')
archivo = '/DjangoProjects/xmlcbs/media/'+ archivo_request
with open(archivo,"r") as file:
request_data = file.read()
target_url = "http://1.1.1.1:1111/services/" + ws_service + "?wsdl"
headers = {'Content-type':'text/xml'}
data_response = requests.post(target_url, data=request_data, headers=headers).text
jdato = xmltodict.parse(data_response)
data = json2html.convert(json = jdato)
data_template = data
return render_to_response('prueba.html', {'data':data_template})
此视图一次仅适用于一个用户,但当两个或更多用户提出请求时,数据将被覆盖。
知道如何使用具有不同请求和响应的同一视图来处理多个用户吗?
【问题讨论】:
-
存档文件中是否有用户特定的数据?如果是这样,写该文件的内容和内容是什么?
-
是的,每个用户都会根据不同的参数请求不同的信息。示例:user1 将从客户端 #123 请求数据,user2 将从客户端 #3456 或其他 Web 服务请求数据。
-
您没有回答问题。在此代码中,您从磁盘读取文件并将其内容在请求中发送到外部 API。该文件应该是每个用户的吗?如果是这样,它是如何编写的?除了文件之外,这段代码中没有任何会引起用户间干扰的内容。
-
是的,每个用户和每个 Web 服务都是一个文件。我希望读取一些 xml 文件以呈现包含所有需要的参数的表单,以向为用户选择的 Web 服务发出请求。使用表单的 POST 数据创建一个新的 xml 文件,用于发出请求。用户只共享相同的视图来发出请求并将模板中的响应呈现为 html 表
标签: python django web-services django-views