Django 3.0 - 在浏览器中查看 PDF
Django 3.0 - View a PDF in the browser
我只想单击 link 并在浏览器中查看我已上传到我的 Django 项目的 PDF。可以肯定的是,在 Django 文档 (https://docs.djangoproject.com/en/3.1/howto/outputting-pdf/) 中关于如何创建报告的内容完全不是我想要做的。我不需要生成 PDF,我已经有了我需要的。 (这在其他答案中出现了很多。)
运气不好:Render HTML to PDF in Django site(不足为奇,已经 11 年了)
或者:Django - JS : How to display the first PDF page as cover(有点惊讶这不是唯一一次出现包含 pdf.js 的建议,我只是在我的页面上得到一个空的白色方块,没有进一步的错误)。
我也曾尝试将 PDF 嵌入到模板中,但没有成功。
(Recommended way to embed PDF in HTML?)
(尝试了 <embed>
和 <iframe>
,正如您在 link pdf.js 中看到的那样。不行。)
一般情况下,如何在 Django 中专门完成此操作 3.x?
谢谢。
有几种方法可以做到这一点。我不确定您是在谈论用户上传的文件,还是静态文件。
方法一
只需 link 从模板到相关文件。
对于用户上传的文件
{% load static %}
<a href="{% get_media_prefix %}name_of_pdf.pdf">Click Me</a>
对于静态文件
{% load static %}
<a href="{% static 'name_of_pdf.pdf' %}">Click Me</a>
方法
如果您尝试从视图return 文件
from django.http import FileResponse
def load_file(request):
file = ... # get file somehow
return FileResponse(file)
有关详细信息,请参阅 django docs。如果该文件来自您的静态文件夹,您可以只使用 pythons open
来读取它。这取决于您提供静态文件的方式。
如果此 pdf 是用户上传的文件,附加到模型,您可以通过相应的字段访问它。
我只想单击 link 并在浏览器中查看我已上传到我的 Django 项目的 PDF。可以肯定的是,在 Django 文档 (https://docs.djangoproject.com/en/3.1/howto/outputting-pdf/) 中关于如何创建报告的内容完全不是我想要做的。我不需要生成 PDF,我已经有了我需要的。 (这在其他答案中出现了很多。)
运气不好:Render HTML to PDF in Django site(不足为奇,已经 11 年了)
或者:Django - JS : How to display the first PDF page as cover(有点惊讶这不是唯一一次出现包含 pdf.js 的建议,我只是在我的页面上得到一个空的白色方块,没有进一步的错误)。
我也曾尝试将 PDF 嵌入到模板中,但没有成功。
(Recommended way to embed PDF in HTML?)
(尝试了 <embed>
和 <iframe>
,正如您在 link pdf.js 中看到的那样。不行。)
一般情况下,如何在 Django 中专门完成此操作 3.x?
谢谢。
有几种方法可以做到这一点。我不确定您是在谈论用户上传的文件,还是静态文件。
方法一
只需 link 从模板到相关文件。 对于用户上传的文件
{% load static %}
<a href="{% get_media_prefix %}name_of_pdf.pdf">Click Me</a>
对于静态文件
{% load static %}
<a href="{% static 'name_of_pdf.pdf' %}">Click Me</a>
方法
如果您尝试从视图return 文件
from django.http import FileResponse
def load_file(request):
file = ... # get file somehow
return FileResponse(file)
有关详细信息,请参阅 django docs。如果该文件来自您的静态文件夹,您可以只使用 pythons open
来读取它。这取决于您提供静态文件的方式。
如果此 pdf 是用户上传的文件,附加到模型,您可以通过相应的字段访问它。