如何使用 Ajax 下载生成的 python docx 文件

发布于 2025-01-15 11:58:20 字数 1662 浏览 0 评论 0原文

我需要从模板中获取一些数据并使用 ajax 将其发送回我的 Django 函数,创建一个 docx 文件并下载它

Django 函数

def download_docx_file(request):
    if request.method == 'GET':
        language = request.GET['lang']
        data = request.GET['data']
        converter = {'data': 'This is the real data'}
        document = Document()
        document.add_heading(f'{language} -- {converter[data]}', 0)
        response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document')
        response['Content-Disposition'] = 'attachment; filename=download.docx'
        document.save(response)
        return response
    return HttpResponse("hello")

AJAX

$("#dwnBtn").click(function(){
$.ajax({
url : "docx/",
type:"GET",
data : { lang : 'lang', data:'data' },
success : function(data){
console.log(data)

}
})
});

我从 AJAX 响应中得到如下响应:

Response console.log(data)

����Bp������;|C������w������=O����]]�%�N������#+��reup����������Y ������̉�J����3)� O��C����F�M�P�&�����rA�@��7T.��z(%h��x�x0�0Z�-i��%q�e �M��i�"�c�-/��j�龀/ļL瞄�0���>�o�[��6 멆�n��s�$� �#>˘ '��wT�� ��3�36DK�+�̓�t6 ��r��sA:���x��<>n������'U��RLqA+���x�BM��:4ĞP�}���:��}�P���� �?F)�9-�W0���2�{x��#2v8N.$V�>X=/�+�c}���ּ�\y���*�J\�� ���90�T�L� 3p���*Sfj(���PWWz�O�s�9]&����iO|�9�;�5�ʘdW�cl% �%;����u���%[�5������Q]$��[L>���yXg�9��2+&,iFs�Q����� u �.�E(�>W��+��M �E������i|���k�k�c蟴CcG�j��4s|x �F1�}��Y��,29�0M=-O����m\L��y��^On^���\���u��a���F9:zc�Sy �-�g�fu�n�C�T:{ ��4&/ ��LM9�98� �&Pnc�!��m�r�~��)74�04��0�0 ������M�~"��.ikjG��M�

怎么样我可以将此二进制数据保存为 .docx 文件吗? 先感谢您

I need to get some data from my template and send it back to my Django function using ajax, create a docx file and download it

Django Function

def download_docx_file(request):
    if request.method == 'GET':
        language = request.GET['lang']
        data = request.GET['data']
        converter = {'data': 'This is the real data'}
        document = Document()
        document.add_heading(f'{language} -- {converter[data]}', 0)
        response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document')
        response['Content-Disposition'] = 'attachment; filename=download.docx'
        document.save(response)
        return response
    return HttpResponse("hello")

AJAX

$("#dwnBtn").click(function(){
$.ajax({
url : "docx/",
type:"GET",
data : { lang : 'lang', data:'data' },
success : function(data){
console.log(data)

}
})
});

I am getting sth like the below response from AJAX response:

Response console.log(data)

�ܝBp��݂�;|C�ھ�w������=O���]]�%�N�����#+�reup����������Y������̉�J����3)� O��C����F�M�P�&�����rA�@��7T.��z(%h��x�x0�0Z�-i��%q�e�M�����i�"�c��-/��j��齔/ļL瞄�0� �� >�o��[��6 멆�n��s�$�
�#>˘ '��wT�� ���3�36DK�+�̓�t6 ��r��sA:���x�<>n������'U��RLqA+���ݺ�BM��:4ĞP�}���:�}ߣP����?F)�9-�W0���2�{x��#2v8N.$V�>X=/�+�c}���ּ�\y���*�J\��
���90�T�L� 3p���*Sfj(���PWWz��O�s�9]&����iO|�9�;�5��ʘdW�cl% �%;����u���%[�5������Q]$��[L>���yXg�9��2+&,iFs�Q�����u????�.�E(�>W��+��M ؟E������i|���k�k�c蟴CcG�j��4s|x �F1�}��Y��,29�0M=-O����m\L��y��^On^���\���u��a���F9:zc�Sy�-�g��fu�n�C�T:{ ��4&/ ��LM9�98� �&Pnc�!��m�r�~��)74�04��0�0������M�~"��.ikjG��M�

how can I save this binary data as a .docx file?
Thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文