新聞中心
Flask是一個(gè)用Python編寫的輕量級(jí)Web應(yīng)用框架,它提供了一種簡(jiǎn)單而靈活的方式來(lái)構(gòu)建Web應(yīng)用,在Flask中,我們可以使用第三方庫(kù)如ReportLab來(lái)生成PDF文件,本文將詳細(xì)介紹如何使用Flask和ReportLab庫(kù)來(lái)導(dǎo)出PDF文件。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)桃山,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
1、安裝所需庫(kù)
我們需要安裝Flask和ReportLab庫(kù),可以使用以下命令安裝:
pip install flask pip install reportlab
2、創(chuàng)建Flask應(yīng)用
接下來(lái),我們創(chuàng)建一個(gè)Flask應(yīng)用,在項(xiàng)目目錄下創(chuàng)建一個(gè)名為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/')
def download(filename):
return send_file(os.path.join('static', filename), as_attachment=True)
if __name__ == '__main__':
app.run(debug=True)
這里我們導(dǎo)入了所需的庫(kù),并創(chuàng)建了一個(gè)Flask應(yīng)用,我們還定義了兩個(gè)路由:一個(gè)用于顯示HTML頁(yè)面,另一個(gè)用于下載生成的PDF文件。
3、創(chuàng)建HTML模板
接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)HTML模板,在項(xiàng)目目錄下創(chuàng)建一個(gè)名為templates的文件夾,并在其中創(chuàng)建一個(gè)名為index.html的文件,添加以下代碼:
PDF生成示例
歡迎來(lái)到PDF生成示例頁(yè)面!
這個(gè)HTML模板包含一個(gè)簡(jiǎn)單的表單,用戶可以通過(guò)點(diǎn)擊“生成PDF并下載”按鈕來(lái)生成PDF文件。
4、生成PDF文件
現(xiàn)在我們需要實(shí)現(xiàn)生成PDF文件的功能,在app.py文件中添加以下代碼:
@app.route('/generate/')
def generate(filename):
c = canvas.Canvas(os.path.join('static', filename), pagesize=landscape(letter))
c.setFont("Helvetica", 12)
c.drawString(100, 750, "歡迎來(lái)到PDF生成示例!")
c.save()
return render_template('generated.html', filename=filename)
這里我們定義了一個(gè)新的路由/generate/,用于生成PDF文件并將其保存到靜態(tài)文件夾中,我們還創(chuàng)建了一個(gè)新的HTML模板generated.html,用于顯示生成的PDF文件,在generated.html文件中添加以下代碼:
PDF生成成功
PDF生成成功!
5、運(yùn)行Flask應(yīng)用
我們運(yùn)行Flask應(yīng)用,在命令行中輸入以下命令:
python app.py
現(xiàn)在,你可以訪問(wèn)http://127.0.0.1:5000/查看HTML頁(yè)面,點(diǎn)擊“生成PDF并下載”按鈕,將生成一個(gè)名為sample.pdf的PDF文件并提供下載鏈接,點(diǎn)擊鏈接可以下載生成的PDF文件,你還可以通過(guò)訪問(wèn)http://127.0.0.1:5000/generate/sample.pdf直接生成并下載PDF文件。
當(dāng)前題目:Flask導(dǎo)出PDF
網(wǎng)頁(yè)鏈接:http://m.5511xx.com/article/dphspgd.html


咨詢
建站咨詢
