use*_*122 4 django file filestream django-views
我想知道如何使用 django 将数据流式传输到客户端。
目标
用户提交一个表单,表单数据被传递给一个返回一个字符串的 web 服务。字符串被tar.gz压缩( ) 并且 tarball 被发送回用户。
不知道是什么路 我搜索并找到了这个,但我只有一个字符串,我不知道它是否是我想要的东西,我不知道用什么来代替filename = __file__,因为我没有文件 - 只有一个字符串. 如果我为每个用户创建一个新文件,这将不是一个好方法。所以请帮助我。(对不起,我是网络编程的新手)。
编辑:
$('#sendButton').click(function(e) {
e.preventDefault();
var temp = $("#mainForm").serialize();
$.ajax({
type: "POST",
data: temp,
url: 'main/',
success: function(data) {
$("#mainDiv").html(data.form);
????
}
});
});
Run Code Online (Sandbox Code Playgroud)
我想使用ajax,那么我应该怎么做才能成功使用ajac函数并返回视图。真的感谢。
我的观点.py:
def idsBackup(request):
if request.is_ajax():
if request.method == 'POST':
result = ""
form = mainForm(request.POST)
if form.is_valid():
form = mainForm(request.POST)
//do form processing and call web service
string_to_return = webserviceString._result
???
to_json = {}
to_json['form'] = render_to_string('main.html', {'form': form}, context_instance=RequestContext(request))
to_json['result'] = result
???return HttpResponse(json.dumps(to_json), mimetype='application/json')
else:
form = mainForm()
return render_to_response('main.html', RequestContext(request, {'form':form}))
else:
return render_to_response("ajax.html", {}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
您可以使用字符串内容而不是实际文件创建ContentFile的 django 文件实例,然后将其作为响应发送。
示例代码:
from django.core.files.base import ContentFile
def your_view(request):
#your view code
string_to_return = get_the_string() # get the string you want to return.
file_to_send = ContentFile(string_to_return)
response = HttpResponse(file_to_send,'application/x-gzip')
response['Content-Length'] = file_to_send.size
response['Content-Disposition'] = 'attachment; filename="somefile.tar.gz"'
return response
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9076 次 |
| 最近记录: |