Django创建PDF

2023-01-27 21:55:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个简单的pdf文件使用我的Django应用程序根据这个链接

https://docs.djangoproject.com/en/dev/howto/outputting-pdf/

唯一的变化是我通过Jquery使用POST请求创建它。。。你知道吗

jquery查询

$("#exportpdf").click(function(){
            //alert('Hi' + '{{request.session.sessionid}}')
            $.ajax({
            async:false
            ,url:'/createpdf'
            ,type: 'POST'
            ,data: {session_id: '{{request.session.sessionid}}'}
            ,error: function(msg){
                alert("Call to Create pdf failed")
            }

        })
        })

你知道吗视图.py你知道吗

@csrf_exempt
def createpdf(request):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
    p = canvas.Canvas(response)
    p.drawString(100, 100, "Hello world.")
    p.showPage()
    p.save()
    return response

问题:

当我单击exportpdf id(作为post请求)时,使用上面的代码,pdf文档没有打开(没有看到任何操作/在web服务器日志中没有错误),但是当我作为GET请求直接访问/createpdf链接时,我可以看到pdf文档正确打开。。。你知道吗

我不能有一个post请求并打开一个pdf文档吗?它应该只是一个GET请求吗?你知道吗


Tags: 文档idpdf链接responserequestsessiontypefunctionalertpostsessionidcreatepdfexportpdf

热门问题