我有一个场景,用户上传一些数据,Django在熊猫中进行一些处理,并返回一个可能很大的txt文件。我已经做好了这项工作,但不确定这种方法的可扩展性,并想知道是否有更好的方法。
适应了Django文档的“输出到CSV”部分,我具有以下内容:
.unix()
在实践中,我将需要输出大约1000行的文本文件,该文件是通过遍历多个数据帧而构建的,我应该只构建一个非常长的文本字符串(内容),还是有更好的方法?在纯python中,我更习惯于使用以下方式创建txt文件输出:
const endDate = '2019-05-29 17:00:00';
console.log("Moment: ", moment(endDate).unix()); // 1559142000
console.log("Parse: ", Date.parse(new Date(endDate))); // 1559142000000
似乎更直观。
根据评论的要求,进行了更新,以准确显示我在Django中尝试的代码,该代码返回了一个空文本文件:
class MyClass(LoginRequiredMixin,FormView):
template_name = 'myapp/mytemplate.html'
form_class = MyForm
success_url = '/' # Replace with your URL or reverse().
def post(self, request, *args, **kwargs):
if request.method == 'POST':
form = MyForm(request.POST, request.FILES)
#print("filename",files[0].name)
if form.is_valid() :
filename = "my-file.txt"
content = 'any string generated by django'
response = HttpResponse(content, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
return response
else:
print("i am invalid")
return self.form_invalid(form)
答案 0 :(得分:0)
https://docs.djangoproject.com/en/3.2/howto/outputting-csv/
和CSV一样,只是把扩展名改成.txt
示例:
response = HttpResponse(content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename="filename.txt"'
writer = csv.writer(response)
writer.writerow(['Hello'])