產品比較

FastAPI Python(它如何為開發者運作)

介紹

FastAPI是一個現代的高性能網頁框架,用於使用 Python 構建 API。 它被設計為易於使用和學習,同時提供強大的功能,如自動驗證、序列化和自動交互式 API 文件。 此外,它可以與任何模板引擎一起使用,並允許您使用項目所需的任何預設模板配置。

讓我們深入探討FastAPI的詳細資訊、其功能以及如何有效使用它。 在本文的後面部分,我們還會查看 IronPDF,這是一個來自 Iron Software 的 PDF 生成 Python 套件。

FastAPI 的主要功能

  1. 高效能:FastAPI 是現有最快的 Python 框架之一,與 Node.js 和 Go 相當,這得益於其在網頁部分使用 Starlette 和在數據部分使用 Pydantic。

  2. 易於使用:它被設計為直觀,並減少閱讀文檔所花費的時間。 該框架利用標準的 Python 類型提示進行數據驗證和序列化。

  3. 自動互動式文檔:FastAPI 利用 OpenAPI 和 JSON Schema 自動生成互動式 API 文檔,可通過 /docs(Swagger UI)和 /redoc(ReDoc)訪問,互動式 API 文檔升級意味著此文檔會自動更新。 替代 API 文件升級也將反映這一點。

  4. 編輯器支援:在 VS Code 等編輯器中提供優秀的代碼補全和類型檢查支援,加快開發速度並減少錯誤。

  5. 以標準為基礎:它基於(並完全兼容)API 的開放標準:OpenAPI 和 JSON Schema。

安裝

您可以使用 pip 安裝 FastAPI 和 Uvicorn(一個 ASGI 伺服器):

pip install fastapi
pip install "uvicorn[standard]"
pip install fastapi
pip install "uvicorn[standard]"
SHELL

建立您的第一個 FastAPI 應用程式

以下是一個簡單的示例,讓您開始使用 FastAPI 並透過用戶界面公開 Python 數據:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
    return {"Hello": "World"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
py
PYTHON

要運行應用程式,請使用 Uvicorn:

uvicorn main:app --reload
py
PYTHON

此命令將啟動開發伺服器並自動重新載入以響應程式碼變更。 您可以在 http://127.0.0.1:8000/docs 訪問互動式 API 文檔。

進階功能

FastAPI 支援多樣的高階功能,非常適合用於複雜應用程式:

  1. 相依性注入:FastAPI 提供了一個強大的相依性注入系統,使您能夠以乾淨且高效的方式管理相依性。

  2. 背景任務:您可以定義在回應返回後執行的背景任務,這對於發送電子郵件或處理數據等任務非常有用。

  3. WebSockets:FastAPI 支援 WebSockets,實現客戶端與伺服器之間的即時通訊。

  4. 安全性:FastAPI 包含處理安全性的工具,包括 OAuth2、JWT 令牌等。

  5. 資料庫整合:FastAPI 可輕鬆透過使用像是 SQLAlchemy 或 Tortoise-ORM 這樣的函式庫來整合資料庫。

範例:建立 CRUD API

讓我們建立一個簡單的 CRUD(創建、讀取、更新、刪除)API 來管理項目。

  1. 定義數據模型
from pydantic import BaseModel
class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None
py
PYTHON
  1. 創建 FastAPI 應用程式
from fastapi import FastAPI, HTTPException
app = FastAPI()
items = {}
@app.post("/items/")
def create_item(item: Item):
    item_id = len(items) + 1
    items[item_id] = item
    return item
@app.get("/items/{item_id}") # optional str query parameter
def read_item(item_id: int):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    return items[item_id]
@app.put("/items/{item_id}") # with path parameters
def update_item(item_id: int, item: Item):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    items[item_id] = item
    return item
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    del items[item_id]
    return {"message": "Item deleted"}
py
PYTHON

介紹 IronPDF

FastAPI Python(如何為開發人員提供幫助):圖1

IronPDF 是一個強大的 Python 函式庫,專為從 HTML、CSS、圖片和 JavaScript 建立、編輯和簽署 PDF 而設計。 它提供商用級性能且佔用較低的記憶體資源。 主要功能包括:

HTML 轉 PDF

將 HTML 文件、HTML 字串和 URL 轉換為 PDF。 例如,使用 Chrome PDF 渲染器將網頁呈現為 PDF。

跨平台支援

兼容各種 .NET 平台,包括 .NET Core、.NET Standard 和 .NET Framework。 它支援 Windows、Linux 和 macOS。

編輯和簽署

設置屬性、通過密碼和權限添加安全性,並對您的PDF應用數字簽名。

頁面模板和設置

自訂 PDF 的頁眉、頁腳、頁碼和可調整的邊距。 支持響應式版面和自訂紙張尺寸。

標準合規性

遵循 PDF 標準,如 PDF/A 和 PDF/UA。 支持 UTF-8 字符編碼並處理資產,例如圖像、CSS 和字體。

使用 IronPDF 和 FastAPI 生成 PDF 文件

pip install fastapi
pip install ironPDF
pip install fastapi
pip install ironPDF
SHELL
from fastapi import FastAPI
from fastapi.responses import FileResponse
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
app = FastAPI()
@app.get("/")
def read_root():
    return {"Hello": "IronPDF"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
@app.get("/pdf")
async def get_pdf(greet1: str = None,greet2: str = None):
    renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
    content = "<h1>Document Generated using IronPDF with fastapi GET</h1>"
    content += "<p> Demonstrate PDF generation using User Inputs"+"</p>"
    content += "<p>"+f"Greetings from: {greet1}"+"</p>"
    content += "<p>"+f"And Greetings from: {greet2}"+"</p>"
    pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
    pdf.SaveAs("fastapi.pdf") 
    # To view the file in the browser, use "inline" for the media_type
    headers = {
        "Content-Disposition": "inline; filename=sample.pdf"
    }  
    # Create a FileResponse object with the file path, media type and headers
    response = FileResponse("fastapi.pdf", media_type="application/pdf", headers=headers)
    # Return the FileResponse object
    return response
py
PYTHON

程式碼說明

以下代碼片段展示了 IronPDF 與 FastAPI 的整合,根據用戶輸入動態生成 PDF 文件,並將其作為可下載的回應提供。

  1. 設定授權金鑰:套用IronPDF授權金鑰以啟用其功能。

  2. FastAPI 初始化:初始化一個 FastAPI 實例(\<code>app\</code>)來處理 HTTP 請求。3。基本路由處理器:\<code>read_root()\</code>:當訪問根 URL (\<code>/\</code>) 時,回應一個顯示「Hello IronPDF」的簡單 JSON 訊息。 `read_item()`:接受`item_id`路径参数和可选的`q`查询参数。 返回一個包含這些函數參數的 JSON 回應。

  3. PDF 生成路徑 (`/pdf`): `get_pdf()`

    • 這個非同步函數處理對 `/pdf` 端點的 GET 請求,並帶有可選的查詢參數 (`greet1` 和 `greet2`)。
    • 構建一個包含以下內容的 HTML 字串 (`content`):一個指示文件來源和目的的標頭。 展示使用用戶輸入的數據(`greet1` 和 `greet2`)生成 PDF 的段落。 使用 IronPDF 中的`ChromePdfRenderer()將 HTML 內容渲染為 PDF(\pdf = renderer.RenderHtmlAsPdf(content)`)。
    • 將生成的 PDF 保存為 "fastapi.pdf" (pdf.SaveAs("fastapi.pdf"))。5. 提供 PDF:
    • 配置響應標頭以指定 PDF 應在瀏覽器中內嵌查看(`"Content-Disposition": "inline; filename=sample.pdf"`)。
    • 建立一個`FileResponse`物件,指向產生的PDF檔案,並設置適當的媒體類型(`"application/pdf"`)。
    • 返回`FileResponse`物件,當訪問`/pdf`端點時觸發下載 PDF 文件。

    以下程式碼片段說明了如何將IronPDF無縫整合到FastAPI中,以根據使用者輸入動態生成和提供PDF文件。 它展示了將 HTML 內容轉換為 PDF 的能力,使其適用於需要即時生成文件並通過 HTTP 傳送的應用程式。

輸出

以下顯示從 API 生成的 swagger 輸出

FastAPI Python(它如何為開發人員運作):圖 2

PDF

FastAPI Python(它如何為開發人員工作):圖3

IronPDF 授權

IronPDF 在 Python 的授權金鑰上運行。 IronPDF for Python 提供免費試用授權金鑰,讓用戶在購買前試用功能。

在使用IronPDF套件之前,將授權密鑰放在腳本的開頭:

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

結論

FastAPI 是一個強大且易於使用的框架,用於在 Python 中構建 API。 FastAPI 具有高效能、自動化文件和先進功能,使其成為初學者和經驗豐富的開發人員的理想選擇。 無論是構建簡單的 API 還是複雜的網路應用程式,FastAPI 都提供您成功所需的工具。

IronPDF 是一個強大的 Python 庫,可以從 HTML 內容中創建、操作和渲染 PDF 文件。 它提供了功能,如HTML轉PDF轉換、互動式表單創建、PDF操作(合併、拆分)和文字提取。 非常適合輕鬆生成動態 PDF 並集成到各種 Python 應用程式中。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
Python PDF 庫比較(免費與付費工具)
下一個 >
IronPDF For Python 與 PDFium Python 的比較

準備開始了嗎? 版本: 2025.5 剛剛發布

查看許可證 >