You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django实现PDF下载:API生成PDF后直接返回HttpResponse

修改views.py实现PDF直接下载(无需本地存储)

你可以直接利用API返回的PDF内容,通过Django的HttpResponse实现浏览器直接下载,完全不需要保存到本地文件夹。修改后的代码如下:

from django.http import HttpResponse

def downloadpdf(request, feedback_id):
    apiKey = '*****************'
    resume = Personal_Details.objects.get(feedback_id=feedback_id)
    response = requests.post(
        'https://api.restpdf.io/v1/pdf',
        headers={
            'X-API-KEY': apiKey,
            'content-type': 'application/json'
        },
        json={
            "output": "data",
            "url": "https://github.com/chryzcode"
        }   
    )
                                    
    if response.status_code == 200:
        # 直接把API返回的PDF内容存入变量
        pdf_content = response.content
        # 创建HttpResponse,指定内容类型为PDF
        response = HttpResponse(pdf_content, content_type='application/pdf')
        # 设置响应头,让浏览器触发下载,指定文件名
        response['Content-Disposition'] = f'attachment; filename="{resume.resume_name}.pdf"'
        return response
    else:
        # 错误情况返回提示(也可根据需求返回自定义错误页面)
        return HttpResponse("转换PDF时出错,请稍后重试", status=500)

关键修改说明:

  • 删掉了本地文件写入的代码,直接将API返回的response.content存入变量pdf_content
  • 用HttpResponse包装PDF内容,设置content-type为application/pdf,让浏览器识别这是PDF文件
  • 添加Content-Disposition响应头,通过attachment触发浏览器的下载行为,同时指定下载的文件名
  • 错误分支替换为返回HttpResponse错误提示,替代原来的控制台print输出,符合Web请求的响应规范

内容的提问来源于stack exchange,提问作者chryzcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:35:21