将python对象传递给视图Django
感谢第一次反馈,似乎我的解释太混乱了,我添加了一些代码块和图片来说明 因此,您可以使用csv文件上的域列表填写表单。 分析列表中的域并将其传递到“多结果”视图:将python对象传递给视图Django,python,django,django-views,Python,Django,Django Views,感谢第一次反馈,似乎我的解释太混乱了,我添加了一些代码块和图片来说明 因此,您可以使用csv文件上的域列表填写表单。 分析列表中的域并将其传递到“多结果”视图: def multiresult(request, *args, **kwargs): input_file = request.FILES['inputFile'] def several_scoring(domain_file): domain_name_list = [] line
def multiresult(request, *args, **kwargs):
input_file = request.FILES['inputFile']
def several_scoring(domain_file):
domain_name_list = []
line = domain_file.readline().decode("utf-8")
while line != "":
domain_name_list.append(line)
line = domain_file.readline().decode("utf-8")
domain_list = []
for line in domain_name_list:
domain = Domain(line.rstrip())
domain.start_scanning()
domain_list.append(domain)
return domain_list
domain_list = several_scoring(input_file)
headers = domain_list[0].header_grading.displayable_list
context = {
'domain_list': domain_list,
'headers': headers,
'domain_list_dict': json.dumps([domain.__as_dict__() for domain in domain_list])
}
return render(request, "multiresult.html", context)
在模板上,我放置了一个下载按钮,通过下载视图将这些结果保存到生成的csv文件中:
由于url,当前的下载视图为get domain\u list\u dict:
<a href="{% url 'domain_analyse:download' domain_list=domain_list_dict %}" method="post" >
<button type="button" class="btn btn-info btn-lg">
<i class="fa fa-download"></i> Télécharger les résultats
</button>
</a>
下载视图能够在获取数据时生成csv文件而不会出现问题
我的问题是如何在不使用url的情况下将域列表(json格式)传递到下载视图?就像django自动处理表单一样,我想更改request.POST,但我真的不知道该怎么做。我应该在客户端使用javascript,还是可以使用jinja或django机制
如果信息仍然丢失,请告诉我
谢谢 如果我理解正确,您希望用户能够下载用户填写表单后生成的文件(.csv)。尽管如此,您不希望将数据存储在数据库或本地。是这样吗 换句话说,我想象的是你有一个页面,上面有生成的表和一个按钮,上面写着“下载CSV”,或者类似的东西。 您可以创建一个URL来下载该.csv,生成它,并在响应中使用“内容处置”标题。就像这个答案:
你问的问题很不清楚。您应该添加一些代码并解释相关问题。但是如果用户发出POST请求,您可以将信息存储在
请求中。POST
。request.POST
在服务器端是不可变的。不过,描述有点“混乱”。您能否提供一些示例程序的MWE,例如构造响应,以便明确您的目标是什么?json将其转储到str到模板上下文中,并在客户端json中加载它?因此,您可以保留数据模型并在浏览器中随意使用它。我更新了我的第一篇文章@布鲁诺·冈萨尔维斯:你说得对。但你的问题并不能解决我的问题。我不知道如何从客户端更改post请求。