Flask PDF以链接请求的方式获取
时间: 2024-03-21 15:41:23 浏览: 14
要以链接请求的方式获取 Flask 中生成的 PDF 文件,可以使用 Flask 的 send_from_directory 函数。
首先,需要在 Flask 中定义一个路由,用于生成 PDF 文件。在这个路由中,可以使用 Python 库生成 PDF 文件,并将其保存在指定的文件夹中。
```python
from flask import Flask, send_from_directory
import os
from reportlab.pdfgen import canvas
app = Flask(__name__)
@app.route('/pdf')
def generate_pdf():
# 生成 PDF 文件
pdf_path = os.path.join(app.root_path, 'pdfs', 'example.pdf')
c = canvas.Canvas(pdf_path)
c.drawString(100, 750, "Hello, world!")
c.save()
# 返回 PDF 文件
return send_from_directory(os.path.join(app.root_path, 'pdfs'), 'example.pdf', as_attachment=True)
```
在这个路由中,使用了 reportlab 库生成了一个简单的 PDF 文件,并将其保存在项目根目录下的 pdfs 文件夹中。
然后,在 Flask 中定义一个新的路由,用于获取 PDF 文件。可以使用 a 标签来创建一个链接,将用户导向这个路由。
```python
@app.route('/get_pdf')
def get_pdf():
return '''
<html>
<body>
<a href="/pdf">Download PDF</a>
</body>
</html>
'''
```
在这个路由中,使用了 HTML 的 a 标签创建了一个链接,将用户导向生成 PDF 的路由。
现在,当用户访问 /get_pdf 路由时,会看到一个链接,点击链接后会下载生成的 PDF 文件。