新聞中心
FastAPI是一個(gè)用于構(gòu)建API的現(xiàn)代、快速(高性能)的Web框架,基于Python 3.7+類型提示,它的主要目標(biāo)是提供一種簡(jiǎn)單、直觀的方式來(lái)定義和實(shí)現(xiàn)API,同時(shí)保持高性能,在FastAPI中,我們可以使用HTML模板來(lái)返回動(dòng)態(tài)生成的HTML頁(yè)面,本文將詳細(xì)介紹如何在FastAPI中返回HTML。

1、安裝FastAPI和Uvicorn
我們需要安裝FastAPI和Uvicorn,Uvicorn是一個(gè)ASGI服務(wù)器,用于運(yùn)行FastAPI應(yīng)用,在命令行中運(yùn)行以下命令來(lái)安裝這兩個(gè)庫(kù):
pip install fastapi pip install uvicorn
2、創(chuàng)建一個(gè)簡(jiǎn)單的FastAPI應(yīng)用
接下來(lái),我們創(chuàng)建一個(gè)簡(jiǎn)單的FastAPI應(yīng)用,在項(xiàng)目目錄下創(chuàng)建一個(gè)名為main.py的文件,并添加以下代碼:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
在這個(gè)例子中,我們創(chuàng)建了一個(gè)FastAPI實(shí)例,并定義了一個(gè)根路由(/),該路由返回一個(gè)包含"Hello"和"World"鍵值對(duì)的字典。
3、創(chuàng)建HTML模板
要返回HTML,我們需要?jiǎng)?chuàng)建一個(gè)HTML模板,在項(xiàng)目目錄下創(chuàng)建一個(gè)名為templates的文件夾,并在其中創(chuàng)建一個(gè)名為index.html的文件,將以下HTML代碼添加到index.html文件中:
FastAPI HTML Example
{{ message }}
在這個(gè)HTML模板中,我們使用雙花括號(hào)({{ }})來(lái)表示變量,我們將在FastAPI應(yīng)用中使用這些變量來(lái)動(dòng)態(tài)生成HTML內(nèi)容。
4、修改FastAPI應(yīng)用以返回HTML模板
現(xiàn)在我們需要修改FastAPI應(yīng)用,以便在根路由上返回HTML模板,在main.py文件中,將read_root函數(shù)修改為以下代碼:
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
import os
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/")
async def read_root(request: Request):
message = "Hello from FastAPI!"
return templates.TemplateResponse("index.html", {"request": request, "message": message})
在這個(gè)修改后的代碼中,我們導(dǎo)入了Request類、HTMLResponse類和Jinja2Templates類,我們還導(dǎo)入了os庫(kù),以便獲取項(xiàng)目目錄,我們創(chuàng)建了一個(gè)Jinja2Templates實(shí)例,并將模板目錄設(shè)置為templates文件夾,我們修改了read_root函數(shù),使其返回一個(gè)HTMLResponse對(duì)象,該對(duì)象使用index.html模板并傳遞兩個(gè)變量:request和message。
5、運(yùn)行FastAPI應(yīng)用
現(xiàn)在我們可以運(yùn)行FastAPI應(yīng)用了,在命令行中,導(dǎo)航到項(xiàng)目目錄并運(yùn)行以下命令:
uvicorn main:app reload
這將啟動(dòng)一個(gè)開(kāi)發(fā)服務(wù)器,監(jiān)聽(tīng)在默認(rèn)端口(8000),在瀏覽器中訪問(wèn)http://127.0.0.1:8000/,你應(yīng)該能看到動(dòng)態(tài)生成的HTML頁(yè)面,其中包含"Hello from FastAPI!"消息。
歸納一下,我們?cè)贔astAPI應(yīng)用中創(chuàng)建了一個(gè)簡(jiǎn)單的根路由,該路由返回一個(gè)包含"Hello"和"World"鍵值對(duì)的字典,我們創(chuàng)建了一個(gè)HTML模板,并在FastAPI應(yīng)用中使用這個(gè)模板來(lái)動(dòng)態(tài)生成HTML內(nèi)容,通過(guò)這種方式,我們可以在FastAPI應(yīng)用中輕松地返回HTML頁(yè)面。
當(dāng)前文章:FastAPI返回HTML
當(dāng)前地址:http://fisionsoft.com.cn/article/dhshhie.html


咨詢
建站咨詢
