对于我的个人网站,我想为我的简历准备一个单独的页面,即PDF。我已经尝试了多种方法,但是我无法弄清楚如何使Flask处理PDF。
给任何遇到此问题的人的注释,因为他们试图使用Flask从数据库提供PDF文件。当文件存储在数据库中时嵌入PDF并不像在静态文件夹中时那样简单。你必须使用该make_response
函数并为其提供适当的标题,以便浏览器知道如何处理二进制PDF数据,而不是像通常那样从视图函数中返回它。这里有一些伪代码可以帮助你:
from flask import make_response
@app.route('/docs/<id>')
def get_pdf(id=None):
if id is not None:
binary_pdf = get_binary_pdf_data_from_database(id=id)
response = make_response(binary_pdf)
response.headers['Content-Type'] = 'application/pdf'
response.headers['Content-Disposition'] = \
'inline; filename=%s.pdf' % 'yourfilename'
return response
如果你要下载文件而不是在浏览器中显示文件,则可以将“内容处置”从“内联”更改为“附件”。你也可以将此视图放在子域中,例如docs.yourapp.com而不是yourapp.com/docs。最后一步是将该文档实际嵌入浏览器中。在你想要的任何页面上,只需使用rawrgulmuffin的策略即可:
<embed src="/docs/pdfid8676etc" width="500" height="375">
你甚至可以使用Jinja2模板使src动态化。让我们将其放在doc.html中(注意大括号):
<embed src="/docs/{{doc_id}}">
然后在视图函数中,只需返回具有适当doc_id的渲染模板:
from flask import render_template
@app.route('/<id>')
def show_pdf(id=None):
if id is not None:
return render_template('doc.html', doc_id=id)
这会将用户从数据库中请求的文档嵌入到简单的GET请求中。希望这对任何在数据库中处理大量PDF的人有所帮助!
问题内容: 部署Node.js的最佳方法是什么? 我有一个Dreamhost VPS(这就是他们所说的VM),并且我已经能够安装Node.js并设置代理。只要我保持打开节点时启动的SSH连接就可以了。 问题答案: 2016年答案 :几乎每个Linux发行版都随附systemd,这意味着 永久,monit,PM2等都不再需要-您的OS已经可以处理这些任务 。 制作一个文件(用您的应用名称替换“ my
在python代码中,如何有效地将pdf中的某个页面保存为jpeg文件?(用例:我有一个python烧瓶Web服务器,其中pdf-s将被上传,每个页面对应的jpeg-s是存储的。) 这个解决方案很接近,但问题是它无法将整个页面转换为jpeg。
我有一个22*17的PDF文件,我需要它来适应11*8.5的页面内容。 基本上减小了现有的页面大小。我正在使用断章。 我该怎么做?
下一段代码应该将一个多页pdf文件拆分为每页一个文件。它适用于第一页,但当关闭第二页的目标pdfDocument时,它会抛出iText。内核PDFEException:“文档没有页面。”尝试使用不同的源文件,结果相同。还尝试先获取页面数,然后打开每个页面的读卡器,得到相同的结果
问题内容: 我有一些可以在JSFiddle中运行的代码,但是无法在自己的页面中运行。 的HTML 的CSS 的JavaScript 如果我将代码放入HTML / JS(以链接形式)/ CSS(以链接形式)文件中,则CSS可以工作,但JavaScript不能。 我尝试用元素的ID 代替,但还是没有运气。 问题答案: “如果我接受代码并放入HTML / JS(链接在头部)” 问题是您已将代码放在中,因
我有一个PDF文件,我想创建两个新的文件的基础上,原来的文件。第一个新文件应该得到原始文件的第1、2和4页,第二个新文件应该得到原始文件的第3页。在PHP7.3中这样做的最好方法是什么?我在这里发现了一个旧库,但我不想把这样一个旧库添加到我的代码中。在此基础上,我找到了一些云解决方案,但这也不是我想要的。没有简单的“现代”解决方案吗?