在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
FastAPI是一個現代的高性能網頁框架,用於使用 Python 構建 API。 它被設計為易於使用和學習,同時提供強大的功能,如自動驗證、序列化和自動交互式 API 文件。 此外,它可以與任何模板引擎一起使用,並允許您使用項目所需的任何預設模板配置。
讓我們深入探討FastAPI的詳細資訊、其功能以及如何有效使用它。 在本文的後面部分,我們還會查看 IronPDF,這是一個來自 Iron Software 的 PDF 生成 Python 套件。
高效能:FastAPI 是現有最快的 Python 框架之一,與 Node.js 和 Go 相當,這得益於其在網頁部分使用 Starlette 和在數據部分使用 Pydantic。
易於使用:它被設計為直觀,並減少閱讀文檔所花費的時間。 該框架利用標準的 Python 類型提示進行數據驗證和序列化。
自動互動式文檔:FastAPI 利用 OpenAPI 和 JSON Schema 自動生成互動式 API 文檔,可通過 /docs(Swagger UI)和 /redoc(ReDoc)訪問,互動式 API 文檔升級意味著此文檔會自動更新。 替代 API 文件升級也將反映這一點。
編輯器支援:在 VS Code 等編輯器中提供優秀的代碼補全和類型檢查支援,加快開發速度並減少錯誤。
您可以使用 pip 安裝 FastAPI 和 Uvicorn(一個 ASGI 伺服器):
pip install fastapi
pip install "uvicorn[standard]"
pip install fastapi
pip install "uvicorn[standard]"
以下是一個簡單的示例,讓您開始使用 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
要運行應用程式,請使用 Uvicorn:
uvicorn main:app --reload
py
此命令將啟動開發伺服器並自動重新載入以響應程式碼變更。 您可以在 http://127.0.0.1:8000/docs
訪問互動式 API 文檔。
FastAPI 支援多樣的高階功能,非常適合用於複雜應用程式:
相依性注入:FastAPI 提供了一個強大的相依性注入系統,使您能夠以乾淨且高效的方式管理相依性。
背景任務:您可以定義在回應返回後執行的背景任務,這對於發送電子郵件或處理數據等任務非常有用。
WebSockets:FastAPI 支援 WebSockets,實現客戶端與伺服器之間的即時通訊。
安全性:FastAPI 包含處理安全性的工具,包括 OAuth2、JWT 令牌等。
讓我們建立一個簡單的 CRUD(創建、讀取、更新、刪除)API 來管理項目。
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
py
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
IronPDF 是一個強大的 Python 函式庫,專為從 HTML、CSS、圖片和 JavaScript 建立、編輯和簽署 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 和字體。
pip install fastapi
pip install ironPDF
pip install fastapi
pip install ironPDF
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
以下代碼片段展示了 IronPDF 與 FastAPI 的整合,根據用戶輸入動態生成 PDF 文件,並將其作為可下載的回應提供。
設定授權金鑰:套用IronPDF授權金鑰以啟用其功能。
FastAPI 初始化:初始化一個 FastAPI 實例(\<code>app\</code>)來處理 HTTP 請求。3。基本路由處理器:\<code>read_root()\</code>:當訪問根 URL (\<code>/\</code>) 時,回應一個顯示「Hello IronPDF」的簡單 JSON 訊息。 `read_item()`:接受`item_id`路径参数和可选的`q`查询参数。 返回一個包含這些函數參數的 JSON 回應。
PDF 生成路徑 (`/pdf`): `get_pdf()`:
將 HTML 內容渲染為 PDF(\
pdf = renderer.RenderHtmlAsPdf(content)`)。pdf.SaveAs("fastapi.pdf")
)。5. 提供 PDF:以下程式碼片段說明了如何將IronPDF無縫整合到FastAPI中,以根據使用者輸入動態生成和提供PDF文件。 它展示了將 HTML 內容轉換為 PDF 的能力,使其適用於需要即時生成文件並通過 HTTP 傳送的應用程式。
以下顯示從 API 生成的 swagger 輸出
IronPDF 在 Python 的授權金鑰上運行。 IronPDF for Python 提供免費試用授權金鑰,讓用戶在購買前試用功能。
在使用IronPDF套件之前,將授權密鑰放在腳本的開頭:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
py
FastAPI 是一個強大且易於使用的框架,用於在 Python 中構建 API。 FastAPI 具有高效能、自動化文件和先進功能,使其成為初學者和經驗豐富的開發人員的理想選擇。 無論是構建簡單的 API 還是複雜的網路應用程式,FastAPI 都提供您成功所需的工具。
IronPDF 是一個強大的 Python 庫,可以從 HTML 內容中創建、操作和渲染 PDF 文件。 它提供了功能,如HTML轉PDF轉換、互動式表單創建、PDF操作(合併、拆分)和文字提取。 非常適合輕鬆生成動態 PDF 並集成到各種 Python 應用程式中。