跳至頁尾內容
PYTHON 幫助

Flask python(開發人員工作原理)

Flask 是一個多功能且輕量級的 Python 網路框架,設計用來協助開發者快速建立高效且可擴展的複雜網路應用程式。 它提供一系列為快速開發量身訂做的工具和程式庫。 它以簡單和極簡主義著稱,使得在 Python 中建立網路開發環境變得容易。 在本文中,我們將探討 Flask Python 套件及其功能,並稍後簡要探討 IronPDF Python 套件。

入門

Flask 是一個強大且靈活的 Python 微型網路伺服器框架。 它適合建構小型到大型複雜的網路應用程式。 以下是 Flask 的一些關鍵特性:

  1. 輕量且極簡:

    • Flask 是一個輕量的網路應用程式框架,只有非常少的相依性,提供網路開發所需的基本元件,例如路由、請求處理、模板和測試。
    • 它不強加嚴格的結構,允許開發者以自己的方式構建應用程式。
  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 )以滿足應用程式所需的功能。
  5. HTTP 請求處理:Flask 簡化了 HTTP 請求(GET、POST、PUT、DELETE 等)的處理,並可存取例如表單輸入、 Cookie 和標頭的請求資料。
  6. URL 構建:Flask 提供生成動態 URL 的工具,這有助於維持網路應用程式的靈活性和可擴展性。
  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 渲染器渲染網頁。
  • 跨平台支持:相容 Python 3+ 在 Windows、Mac、Linux 和雲平台上的運行。 IronPDF 也提供用於 .NET、Java、Python 和 Node.js 的環境。
  • 編輯和簽署:自定義 PDF 屬性,通過密碼和權限增強安全性,並應用數位簽章。
  • 頁面模板和設置:使用標題、頁尾、頁碼、可調邊緣、自定義紙張大小和響應布局來定制 PDF。
  • 標準合規性:遵循 PDF 標準如 PDF/A 和 PDF/UA,支持 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 ironpdf

然後新增以下程式碼以展示 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 生成並提供基於使用者輸入生成的 PDF 文件,通過 URL 參數(g1g2)進行處理。

  1. 導入:

    • from flask import Flask, request, send_file:導入必要的 Flask 模組以建立網路應用和處理請求。
    • from ironpdf import *:導入 IronPDF 功能以進行 PDF 生成。
  2. 設置許可密鑰:

    • License.LicenseKey = "Your key":應用 IronPDF 功能所需的許可密鑰。
  3. Flask 應用設置:

    • app = Flask(__name__):建立一個 Flask 應用實例。
  4. 路由定義:

    • @app.route('/'):定義根 URL ('/') 的路由。 存取時,它返回字串 'Awesome IronPDF'。
    • @app.route('/pdf'):定義 '/pdf' 的路由。 存取時,它基於使用者輸入生成 PDF 文件(g1g2)。
  5. PDF 生成:pdf() 函式中:

    • 從請求查詢參數中使用 request.args.get() 獲取 g1g2 的值。
    • 從 IronPDF 初始化一個 ChromePdfRenderer() 實例。
    • 構造 HTML 字串(content),其中包含基於使用者輸入動態生成的標題和段落。
    • 使用 renderer.RenderHtmlAsPdf(content) 將 HTML 內容轉換為 PDF。
    • 將 PDF 文件本地保存為 'flaskIronPDF.pdf'。
  6. 發送 PDF 檔案:

    • 準備響應的標頭,以指定文件應在瀏覽器中內嵌查看("Content-Disposition": "inline; filename=sample.pdf")。
    • 使用 send_file('flaskIronPDF.pdf') 將生成的 PDF 文件作為響應發送回使用者的瀏覽器。
  7. 運行應用:
    • if __name__ == '__main__': app.run(debug=True):啟動 Flask 應用在除錯模式下,以便輕鬆進行除錯和開發。

這個 Flask 應用演示如何整合 IronPDF 以在網路應用程式中生成 PDF。 它根據 URL 參數(g1g2)動態建立 PDF,並將生成的 PDF 文件返回給使用者的瀏覽器。 這種設置對於從網路請求中直接生成報告、發票或任何動態生成的文件非常有用。

輸出 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 套件用於開發網路應用程式。 它簡化了網路伺服器的建立和 HTTP 請求的處理,使其成為構建 API 和網路服務的流行選擇。 Flask 的輕量級特性和靈活性使開發者能夠快速建立原型並擴展應用程式。 它廣泛的擴展生態系統增強了功能,支持身份驗證、資料庫整合等任務。 儘管簡單,Flask 仍然對於小型項目和大型、複雜的應用程式都非常強大。 Flask 的簡單性、靈活性和強大功能使其成為網路開發的絕佳選擇。

IronPDF 是一個為程式設計 PDF 文件的生成、編輯和操作而設計的 Python 程式庫。 它提供從頭開始建立 PDF 文件、將 HTML 轉換為 PDF、合併或拆分 PDF、新增註釋和水印以及從 PDF 中提取文字或圖像等功能。 IronPDF 的目標是簡化 Python 應用中的 PDF 處理,提供管理文件佈局、字體、顏色和其他樣式元素的工具。 此程式庫對於從網路應用程式中生成文件到自動生成報告和文件管理系統的任務非常有用。

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

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話