跳過到頁腳內容
PYTHON 說明

Flask Python(對開發者而言如何運作)

Flask是一個功能全面、輕量的 Python Web 框架,旨在協助開發人員快速建立高效、可擴展的複雜 Web 應用程式。 它提供了一系列專為快速開發而設計的工具和庫。 它以其簡潔性和極簡主義而聞名,使用戶能夠輕鬆上手 Python 的 Web 開發環境。 在本文中,我們將探討 Flask Python 套件及其特性,並簡單介紹IronPDF Python 套件。

開始

Flask 是一個強大且靈活的 Python 微型 Web 伺服器框架。 它非常適合小型和大型複雜 Web 應用程式。 以下是 Flask 的一些主要功能:

1.輕巧簡約

  • Flask 是一個輕量級的 Web 應用程式框架,依賴項很少,為 Web 開發提供了路由、請求處理、模板和測試等基本元件。
  • 它不強加僵化的結構,允許開發者以自己的方式建立應用程式。

2.路由系統

  • Flask 提供了一個路由系統,可以將 URL 對應到視圖函數。
  • 您可以輕鬆定義不同的路由並處理 HTTP 方法(GET、POST 等)。

3.模板繼承引擎(Jinja2)

  • Flask 包含 Jinja2,一個強大的模板引擎。
  • Jinja2 透過將模板與資料結合,幫助產生動態 HTML 頁面。

4.可擴充性和靈活性

  • Flask 允許你從小規模開始,並根據需要進行擴展。 它適用於從基本網頁到複雜應用程式的各種應用。

Flask框架的主要特性

1.路由: Flask 使用裝飾器來定義 URL 路由,使開發人員能夠輕鬆地將 URL 映射到 Python 函數,從而輕鬆地提供帶有 HTML 的靜態檔案。 2.模板: Flask 整合了 Jinja2 模板引擎,使開發人員能夠透過將變數從 Python 程式碼傳遞到 HTML 模板來渲染動態 HTML 和 CSS 頁面。 3.開發伺服器: Flask 內建了開發伺服器,方便在本地測試和調試應用程式。 4.擴充: Flask 採用模組化設計,並提供各種擴充功能(例如用於資料庫整合的 SQLAlchemy、用於表單處理的 Flask-WTF、用於建立 REST API 的 Flask-RESTful),可根據需要為應用程式新增功能。

  1. HTTP 請求處理: Flask 簡化了 HTTP 請求(GET、POST、PUT、DELETE 等)的處理,並存取請求數據,例如表單輸入、cookie 和標頭。
  2. URL 建置: Flask 提供了動態產生 URL 的實用工具,這有助於保持 Web 應用程式的靈活性和可擴充性。 7.集成: Flask 可以與其他函式庫和框架集成,使其能夠靈活地滿足各種應用程式需求和環境。

範例:建立一個基本的 Flask 項目

建立檔案app.py 請確保您已執行以下命令安裝 Flask。

pip install flask
pip install flask
SHELL

然後將以下程式碼加入app.py中。

# Importing the Flask class from the flask module
from flask import Flask 

# Creating an instance of the Flask class for the web application
app = Flask(__name__)

# Defining a route for the root URL ('/')
@app.route('/')
def index():
    # Function that handles the root URL route, returns a string as response
    return 'Awesome IronPDF'

# Running the application
if __name__ == '__main__':
    # Debug mode is enabled for easier troubleshooting
    app.run(debug=True)
# Importing the Flask class from the flask module
from flask import Flask 

# Creating an instance of the Flask class for the web application
app = Flask(__name__)

# Defining a route for the root URL ('/')
@app.route('/')
def index():
    # Function that handles the root URL route, returns a string as response
    return 'Awesome IronPDF'

# Running the application
if __name__ == '__main__':
    # Debug mode is enabled for easier troubleshooting
    app.run(debug=True)
PYTHON

使用名為app.py的 Python 檔案運行程式碼,如下所示。

python app.py
python app.py
SHELL

輸出

Flask Python(開發者使用指南):圖 1 - Flask 輸出

介紹 IronPDF。

Flask Python(開發者使用指南):圖 2 - IronPDF:Python PDF 函式庫

IronPDF 是一個功能強大的 Python 庫,旨在利用 HTML、CSS、圖像和 JavaScript 建立、編輯和簽署 PDF 文件。 它性能卓越,記憶體佔用極低。 主要功能包括

  • HTML 轉 PDF 轉換:將 HTML 文件、HTML 字串和 URL 轉換為 PDF 文檔,例如使用 Chrome PDF 渲染器渲染網頁。 -跨平台支援:相容於 Windows、Mac、Linux 和雲端平台上的 Python 3+。 IronPDF 也適用於 .NET、Java、Python 和 Node.js 環境。 -編輯和簽名:自訂 PDF 屬性,透過密碼和權限增強安全性,並套用數位簽章。 -頁面範本和設定:使用頁首、頁尾、頁碼、可調邊距、自訂紙張尺寸和響應式佈局來客製化 PDF。 -標準合規性:符合 PDF/A 和 PDF/UA 等 PDF 標準,支援 UTF-8 字元編碼,並能無縫處理影像、CSS 樣式表和字體等資源。

安裝

pip install ironpdf

使用 IronPDF 和 Flask 產生 PDF 文檔

先決條件

  1. 確保已安裝 Visual Studio Code 作為程式碼編輯器。
  2. 已安裝 Python 版本 3。

首先,讓我們建立一個 Python 檔案來加入我們的腳本。

開啟 Visual Studio Code 並建立一個名為flaskDemo.py的檔案。

安裝必要的庫:

pip install flask
pip install ironpdf
pip install flask
pip install ironpdf
SHELL

然後加入以下程式碼來示範 IronPDF 和 Flask Python 套件的用法。

# Import necessary libraries
from flask import Flask, request, send_file
from ironpdf import *

# Apply your IronPDF license key
License.LicenseKey = "Your key"

# Create an instance of the Flask class
app = Flask(__name__)

# Define a route for the root URL
@app.route('/')
def index():
    return 'Awesome IronPDF'

# Define a route for generating PDFs
@app.route('/pdf')
def pdf():
    # Retrieve 'g1' and 'g2' parameters from the request's query string
    g1 = request.args.get('g1')
    g2 = request.args.get('g2')

    # Create an instance of the ChromePdfRenderer
    renderer = ChromePdfRenderer()

    # Generate HTML content dynamically based on user inputs
    content = "<h1>Document Generated using IronPDF with Flask GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs</p>"
    content += f"<p>Greetings from: {g1}</p>"
    content += f"<p>And Greetings from: {g2}</p>"

    # Render the HTML as a PDF
    pdf = renderer.RenderHtmlAsPdf(content)

    # Save PDF to a file
    pdf.SaveAs("flaskIronPDF.pdf")

    # Set headers to display the PDF inline in the browser
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }

    # Return the generated PDF to be viewed in the browser
    return send_file('flaskIronPDF.pdf')

# Run the Flask web application
if __name__ == '__main__':
    app.run(debug=True)
# Import necessary libraries
from flask import Flask, request, send_file
from ironpdf import *

# Apply your IronPDF license key
License.LicenseKey = "Your key"

# Create an instance of the Flask class
app = Flask(__name__)

# Define a route for the root URL
@app.route('/')
def index():
    return 'Awesome IronPDF'

# Define a route for generating PDFs
@app.route('/pdf')
def pdf():
    # Retrieve 'g1' and 'g2' parameters from the request's query string
    g1 = request.args.get('g1')
    g2 = request.args.get('g2')

    # Create an instance of the ChromePdfRenderer
    renderer = ChromePdfRenderer()

    # Generate HTML content dynamically based on user inputs
    content = "<h1>Document Generated using IronPDF with Flask GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs</p>"
    content += f"<p>Greetings from: {g1}</p>"
    content += f"<p>And Greetings from: {g2}</p>"

    # Render the HTML as a PDF
    pdf = renderer.RenderHtmlAsPdf(content)

    # Save PDF to a file
    pdf.SaveAs("flaskIronPDF.pdf")

    # Set headers to display the PDF inline in the browser
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }

    # Return the generated PDF to be viewed in the browser
    return send_file('flaskIronPDF.pdf')

# Run the Flask web application
if __name__ == '__main__':
    app.run(debug=True)
PYTHON

程式碼解釋

此程式碼片段演示了一個 Flask 應用程序,該應用程式使用 IronPDF 根據用戶透過 URL 參數( g1g2 )輸入的內容生成和提供 PDF 文件。

1.進口

  • from flask import Flask, request, send_file : 匯入建立 web 應用程式和處理請求所需的 Flask 模組。
  • from ironpdf import * : 匯入 IronPDF 功能以產生 PDF。

2.設定許可證密鑰

  • License.LicenseKey = &quot;Your key&quot; : 套用 IronPDF 功能所需的許可證金鑰。
  1. Flask 應用搭建
    • app = Flask( __name__ ) : 建立一個 Flask 應用程式實例。

4.路線定義

  • @app.route(&#39;/&#39;) : 定義根 URL ('/') 的路由。 訪問時,它會傳回字串"Awesome IronPDF"。
  • @app.route(&#39;/pdf&#39;) : 定義 '/pdf' 的路由。 訪問時,它會根據使用者輸入( g1g2 )產生 PDF 文件。
  1. PDF 生成
    pdf()函數內部:
    • 使用request.args.get()從請求查詢參數中檢索g1g2的值。
    • 從 IronPDF 初始化ChromePdfRenderer()實例。
    • 建立一個 HTML 字串( content ),其中包含根據使用者輸入動態產生的標題和段落。
    • 使用renderer.RenderHtmlAsPdf(content)將 HTML 內容轉換為 PDF。
    • 將 PDF 文件儲存到本機,命名為"flaskIronPDF.pdf"。

6.發送 PDF 檔案

  • 準備回應標頭,以指定檔案應在瀏覽器中內聯查看( &quot;Content-Disposition&quot;: &quot;inline; filename=sample.pdf&quot; )。
  • 使用send_file(&#39;flaskIronPDF.pdf&#39;)將產生的 PDF 檔案作為回應傳送回使用者的瀏覽器。

7.運行應用程式

  • if __name__ == &#39; __main__ &#39;: app.run(debug=True) : 以調試模式啟動 Flask 應用程序,以便於調試和開發。

此 Flask 應用程式示範如何在 Web 應用程式環境中整合 IronPDF 以產生 PDF 檔案。 它根據使用者透過 URL 參數( g1g2 )輸入的內容動態建立 PDF,並將產生的 PDF 檔案提供回使用者的瀏覽器。 這種設定可用於直接從 Web 請求產生報表、發票或任何動態產生的文件。

輸出 PDF

Flask Python(開發者使用指南):圖 3 - PDF 輸出

IronPDF 授權。

IronPDF需要 Python 許可證金鑰才能運作。 IronPDF for Python 提供免費試用許可證金鑰,使用戶能夠在購買前體驗其豐富的功能。

在使用IronPDF 軟體包之前,請將許可證密鑰放在腳本的開頭:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

結論

Flask Python 套件用於開發 Web 應用程式。 它簡化了 Web 伺服器的建立和 HTTP 請求的處理,因此在建立 API 和 Web 服務方面非常受歡迎。 Flask 的輕量級特性和靈活性使開發人員能夠快速建立應用程式原型並進行擴展。 其豐富的擴展生態系統增強了功能,支援身份驗證、資料庫整合等任務。 儘管 Flask 結構簡單,但它對於小型專案和大型複雜應用程式來說仍然功能強大。 Flask 的簡潔性、靈活性和強大的功能使其成為 Web 開發的絕佳選擇。

IronPDF 是一個 Python 庫,旨在以程式設計方式產生、編輯和操作 PDF 文件。 它提供的功能包括:從頭開始建立 PDF 文件、將 HTML 轉換為 PDF、合併或分割 PDF、添加註釋和浮水印以及從 PDF 中提取文字或圖像。 IronPDF 旨在簡化 Python 應用程式中的 PDF 處理,提供用於管理文件佈局、字體、顏色和其他樣式元素的工具。 該庫可用於從 Web 應用程式中的文件產生到自動報告產生和文件管理系統等各種任務。

結合這兩個庫,使用者可以輕鬆開發具有 PDF 生成功能的 Web 應用程式。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。