Flask导出PDF
- 行业动态
- 2024-04-15
- 4263
Flask是一个用Python编写的轻量级Web应用框架,它提供了一种简单而灵活的方式来构建Web应用,在Flask中,我们可以使用第三方库如ReportLab来生成PDF文件,本文将详细介绍如何使用Flask和ReportLab库来导出PDF文件。
1、安装所需库
我们需要安装Flask和ReportLab库,可以使用以下命令安装:
pip install flask pip install reportlab
2、创建Flask应用
接下来,我们创建一个Flask应用,在项目目录下创建一个名为app.py的文件,并添加以下代码:
from flask import Flask, render_template, send_file import os from reportlab.lib.pagesizes import letter, landscape from reportlab.pdfgen import canvas app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/download/<filename>') def download(filename): return send_file(os.path.join('static', filename), as_attachment=True) if __name__ == '__main__': app.run(debug=True)
这里我们导入了所需的库,并创建了一个Flask应用,我们还定义了两个路由:一个用于显示HTML页面,另一个用于下载生成的PDF文件。
3、创建HTML模板
接下来,我们需要创建一个HTML模板,在项目目录下创建一个名为templates的文件夹,并在其中创建一个名为index.html的文件,添加以下代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <meta name="viewport" content="width=devicewidth, initialscale=1.0"> <title>PDF生成示例</title> </head> <body> <h1>欢迎来到PDF生成示例页面!</h1> <form action="/download/sample.pdf" method="post"> <button type="submit">生成PDF并下载</button> </form> </body> </html>
这个HTML模板包含一个简单的表单,用户可以通过点击“生成PDF并下载”按钮来生成PDF文件。
4、生成PDF文件
现在我们需要实现生成PDF文件的功能,在app.py文件中添加以下代码:
@app.route('/generate/<filename>') def generate(filename): c = canvas.Canvas(os.path.join('static', filename), pagesize=landscape(letter)) c.setFont("Helvetica", 12) c.drawString(100, 750, "欢迎来到PDF生成示例!") c.save() return render_template('generated.html', filename=filename)
这里我们定义了一个新的路由/generate/<filename>,用于生成PDF文件并将其保存到静态文件夹中,我们还创建了一个新的HTML模板generated.html,用于显示生成的PDF文件,在generated.html文件中添加以下代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <meta name="viewport" content="width=devicewidth, initialscale=1.0"> <title>PDF生成成功</title> </head> <body> <h1>PDF生成成功!</h1> <p><a href="{{ url_for('download', filename=filename) }}">点击下载生成的PDF文件</a></p> </body> </html>
5、运行Flask应用
我们运行Flask应用,在命令行中输入以下命令:
python app.py
现在,你可以访问http://127.0.0.1:5000/查看HTML页面,点击“生成PDF并下载”按钮,将生成一个名为sample.pdf的PDF文件并提供下载链接,点击链接可以下载生成的PDF文件,你还可以通过访问http://127.0.0.1:5000/generate/sample.pdf直接生成并下载PDF文件。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/291151.html