我正在用Django创建一个文本文件响应。我用模板文件以正常方式实现它。如何返回具有精确定位的文本文件?
def create_file(request):
... create context ...
result = render_to_string('template.txt', context_dict)
response = HttpResponse(result, mimetype='text/plain')
response['Content-Disposition'] = 'attachment; filename=file.txt'
return response
尽管文本文件响应是唯一的,但文件中的每个字符都必须精确定位。因此,文件中的每个字符(包括空格)都被故意地放置。这对具有未指定长度的变量的行提出了一个问题。所以,让我们说我们有2个变量是字符串,并且在模板中位于同一行。
{{variable1}} {{variable2}}
变量2必须出现在文本文件的第5列。如果我不知道variable1占用了多少空间,我怎样才能为variable2指定一个精确的位置?或者,我只是想说这个完全错误?将模板完全抛弃并在视图中完全创建文本响应可能更容易?
右对齐更容易。 (“%06s”%variable1)会在字符串的左边放置6个len空格。 (但是,如果需要,它不会截断为6个字符。) – 2011-06-09 23:46:10
感谢您的回复。使用ljust看起来比模板更有前途。现在我需要考虑一个代码结构来处理我创建的行的每种情况(62确切地说:-() – buken 2011-06-10 00:01:48
无论如何,您必须这样做,否?即使模板做了你想要的,您仍然必须按照严格的细节描述每一行,就像网页以严格的细节描述每个DIV,SPAN和TABLE/TR/TD一样。描述结构,然后编写代码将其合并,然后编写代码使结构可以插入 – 2011-06-10 00:15:25