国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FastAPI 庫(Python 的 Web 框架)基本使用指南(一)

這篇具有很好參考價值的文章主要介紹了FastAPI 庫(Python 的 Web 框架)基本使用指南(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

FastAPI 概述

參考文檔:

  • 中文文檔
  • 輕松上手Python的Web神器:FastAPI教程

介紹

FastAPI 是一個基于 Python 的現(xiàn)代 Web 框架,它具有快速構(gòu)建高性能 API 的特點(diǎn)。

FastAPI 關(guān)鍵特性:

  • 快速:可與 NodeJS 和 Go 并肩的極高性能(歸功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
  • 高效編碼:提高功能開發(fā)速度約 200% 至 300%。
  • 更少 bug:減少約 40% 的人為(開發(fā)者)導(dǎo)致錯誤。
  • 智能:極佳的編輯器支持。處處皆可自動補(bǔ)全,減少調(diào)試時間。
  • 簡單:設(shè)計的易于使用和學(xué)習(xí),閱讀文檔的時間更短。
  • 簡短:使代碼重復(fù)最小化。通過不同的參數(shù)聲明實(shí)現(xiàn)豐富功能。bug 更少。
  • 健壯:生產(chǎn)可用級別的代碼。還有自動生成的交互式文檔。
  • 標(biāo)準(zhǔn)化:基于(并完全兼容)API 的相關(guān)開放標(biāo)準(zhǔn):OpenAPI (以前被稱為 Swagger) 和 JSON Schema。

常見 Python Web 框架的介紹與區(qū)別

性能:

  • Django:是一個全功能的框架,它提供了許多內(nèi)置的功能和擴(kuò)展。雖然它在性能方面相對較低,但它非常適合構(gòu)建大型應(yīng)用程序。

  • Flask:是一個輕量級的框架,它更加注重簡潔和靈活性。相比于 Django,F(xiàn)lask 具有更好的性能表現(xiàn),但它的功能相對較少。

  • FastAPI:是一個高性能的框架,它基于異步請求處理和類型注解。FastAPI 比 Django 和 Flask 在性能上更為出色,并且它使用 Python 的 asyncio 庫來實(shí)現(xiàn)高效的并發(fā)請求處理。

開發(fā)難度:

  • Django:是一個全功能的框架,它提供了許多現(xiàn)成的功能和組件,使得開發(fā)更加快速和簡單。但是,對于初學(xué)者來說,Django的學(xué)習(xí)曲線可能相對較陡。
  • Flask:是一個簡潔而靈活的框架,它更多地側(cè)重于自定義和配置。相對于 Django,F(xiàn)lask 的學(xué)習(xí)曲線較為平緩,適合小型和簡單的項(xiàng)目。
  • FastAPI:使用了類型注解和自動生成文檔的功能,使代碼更易讀和維護(hù)。它提供了基于標(biāo)準(zhǔn)的API模式和強(qiáng)大的驗(yàn)證工具,減少了開發(fā)過程中的錯誤。

推廣程度:

  • Django:是最受歡迎和廣泛使用的 Python Web 框架之一。它擁有龐大的社區(qū)支持和豐富的文檔資源,可以輕松找到相關(guān)的教程、插件和解決方案。

  • Flask:是一個比較受歡迎的框架,擁有龐大的社區(qū)和豐富的擴(kuò)展庫。雖然它的用戶群體相對較小,但在小型項(xiàng)目和快速原型開發(fā)中非常流行。

  • FastAPI:是一個相對較新的框架,但它正在迅速獲得開發(fā)者的關(guān)注。它的高性能和現(xiàn)代特性吸引了許多開發(fā)者,并且社區(qū)正在逐漸擴(kuò)大。

    FastAPI 是一個用于構(gòu)建 API 的現(xiàn)代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于標(biāo)準(zhǔn)的 Python 類型提示。


入門示例

  • 安裝 FastAPI 和 uvicorn

    FastAPI 使用 uvicorn 作為默認(rèn)的 Web 服務(wù)。因此,需要在安裝 FastAPI 和 uvicorn

    uvicorn 是一個輕量級的 ASGI(異步服務(wù)器網(wǎng)關(guān)接口)服務(wù)器

    pip install fastapi
    pip install uvicorn
    
  • 示例代碼

    from fastapi import FastAPI
    import uvicorn
    
    # 創(chuàng)建一個FastAPI應(yīng)用程序?qū)嵗?/span>
    app = FastAPI()
    # 定義路由(使用裝飾器將函數(shù)綁定到特定的路徑和HTTP方法)
    @app.get("/")
    async def root():
        return {"message": "Hello World"}
    
    @app.get("/items/{item_id}")
    def read_item(item_id: int, q: str = None):
        return {"item_id": item_id, "q": q}
    
    # 啟動程序時使用 uvicorn 允許 FastAPI 應(yīng)用程序
    uvicorn.run(app)
    # 默認(rèn)ip為127.0.0.1,默認(rèn)端口為8000
    

啟動 web 服務(wù)

  • 方式1:uvicorn 內(nèi)嵌式

    在代碼中使用 uvicorn.run(app) 啟用 uvicorn 服務(wù)器運(yùn)行 python 服務(wù),然后使用 python 啟動 py 模塊

    import uvicorn
    
    app = FastAPI()
    uvicorn.run(app)
    
  • 方式2:uvicorn 外啟式

    在命令行輸入命令:

    uvicorn main:app --host 0.0.0.0 --port 80 --reload
    
    • main:啟動服務(wù)的py文件名
    • app:服務(wù)對象名
    • –-host:ip地址
    • –-port:端口
    • –-reload:代碼修改后自動重啟服務(wù)。僅在開發(fā)時使用,上線后不要帶這個參數(shù),會降低性能

uvicorn.run 支持的參數(shù)

  • app :指定應(yīng)用 app。‘腳本名:FastAPI 實(shí)例對象’ 或 FastAPI 實(shí)例對象
  • host :字符串,允許被訪問的形式:locahost、127.0.0.1、當(dāng)前 IP、0.0.0.0。默認(rèn)為127.0.0.1
  • port :數(shù)字,應(yīng)用的端口,默認(rèn)為 8000
  • uds :字符串,socket 服務(wù)綁定到 UNIX 的域名
  • fd :數(shù)字,從此文件描述符綁定到socket
  • loop :事件循環(huán)模式。選項(xiàng)列表為 [auto|asyncio|uvloop],默認(rèn)為 auto
  • http :HTTP協(xié)議實(shí)現(xiàn)。選項(xiàng)列表為 [auto|h11|httptools],默認(rèn)為auto
  • ws :WebSocket協(xié)議實(shí)現(xiàn)。選項(xiàng)列表為 [auto|none|websockets|wsproto],默認(rèn)為auto
  • ws-max-size :數(shù)字,WebSocket 最大消息大?。ㄗ止?jié)),默認(rèn)值為 16777216
  • lifespan :生命周期實(shí)施。選項(xiàng)列表為 [auto|on|off],默認(rèn)為auto
  • env-file :PATH,環(huán)境配置文件
  • log-config :PATH,日志配置文件。支持的格式:.ini、.json、.yaml,默認(rèn)為 fastapi 默認(rèn)的 log 配置
  • log-level :日志級別。選項(xiàng)列表為 [critical|error|warning|info|debug|trace],默認(rèn) info
  • access-log :boolean,access log 日志的開關(guān),默認(rèn)為 True
  • use-colors :boolean,彩色日志的開關(guān)(前提需指定log-config),默認(rèn)為 None
  • interface :選擇 ASGI3、ASGI2 或 WSGI 作為應(yīng)用程序接口。選項(xiàng)列表為 [auto|asgi3|asgi2|wsgi],默認(rèn)為 auto
  • debug :是否使用 debug 模式,默認(rèn)False,
  • reload :boolean,當(dāng)代碼發(fā)生更時,是否自動重啟,默認(rèn) False,
  • reload_dirs :字符串,設(shè)置重新加載目錄,當(dāng)沒有傳這個參數(shù)的實(shí)時,將取當(dāng)前工作目錄
  • reload-delay :float,每隔多久檢測代碼是否有變動,默認(rèn) 0.25 秒
  • workers :數(shù)字,工作進(jìn)程數(shù)。默認(rèn)為 WEB_CONCURRENCY 環(huán)境變量(如果可用) 或 1。對于 --reload 無效。
  • proxy-headers :boolean,啟用/禁用 X-Forwarded-Proto、X-Forwarded-For、X-Forwarded-Port 以填充遠(yuǎn)程地址信息,默認(rèn)為 True
  • forwarded-allow-ips :字符串,用逗號分隔的IP列表以信任代理標(biāo)頭。默認(rèn)為 FORWARDED_ALLOW_IPS 環(huán)境變量(如果可用),或 None,為 None 時,代碼里面則取 127.0.0.1
  • root-path :字符串,為安裝在給定 URL 路徑下的應(yīng)用程序設(shè)置 ASGI “根路徑”。
  • limit-concurrency :數(shù)字,在發(fā)出 HTTP503 響應(yīng)之前,允許的最大并發(fā)連接數(shù)或任務(wù)數(shù)。默認(rèn)為 None
  • limit-max-requests :數(shù)字,達(dá)到多少請求數(shù)則終止進(jìn)程,默認(rèn)為 None
  • backlog :數(shù)字,等待處理的最大連接數(shù),默認(rèn)為 2048
  • timeout-keep-alive :數(shù)字,如果在此超時時間內(nèi)未收到新數(shù)據(jù),則關(guān)閉保持活動狀態(tài)的連接,默認(rèn)為 5
  • ssl-keyfile :字符串,SSL密鑰文件,默認(rèn)為 None
  • ssl-certfile :字符串,SSL證書文件,默認(rèn)為 None
  • ssl-keyfile-password :字符串,SSL密鑰文件密碼,默認(rèn)為 None
  • ssl-version :數(shù)字,要使用的 SSL版本(詳見 stdlib SS L模塊),默認(rèn)為 2
  • ssl-cert-reqs :數(shù)字,是否需要客戶端證書(詳見 stdlib SSL 模塊),默認(rèn)為 0
  • ssl-ca-certs :字符串,CA 證書文件
  • ssl-ciphers :字符串,要使用的 CA 證書文件密碼(詳見 stdlib SSL 模塊),默認(rèn)為 TLSv1
  • header :字典,自定義響應(yīng)頭信息,鍵值對的形式,默認(rèn)為 None

常用 API

app=FastAPI() :創(chuàng)建 FastAPI 應(yīng)用程序?qū)嵗?/h3>
  • app = FastAPI() 是在 FastAPI 中創(chuàng)建應(yīng)用程序?qū)嵗某R娮龇?。這行代碼創(chuàng)建了一個 FastAPI 應(yīng)用程序?qū)ο?,可以在這個對象上定義路由、中間件、異常處理等。

  • 應(yīng)用程序?qū)嵗?app 具有許多屬性和方法,用于配置和管理應(yīng)用程序的各個方面,如路由、中間件、異常處理、依賴注入等。通過創(chuàng)建 app 實(shí)例,可以在其中定義和組織應(yīng)用程序的邏輯。

  • 代碼示例

    from fastapi import FastAPI
    
    app = FastAPI()
    
  • 支持參數(shù)(均為可選傳):

    • debug :調(diào)試模式,True/False。此屬性繼承自 starlette,在 starlette 中使用的是 property 裝飾器

    • routes :路由列表,默認(rèn)值為 None

      此屬性繼承自 starlette,類型為 startlette 的 BaseRoute 列表,BaseRoute 與 starlette 的基礎(chǔ)類型 Scope 有關(guān)

    • title :API文檔的標(biāo)題,默認(rèn)值 FastAPI

    • description :API文檔的描述,默認(rèn)為空

    • version :API 接口的版本號

    • openapi_url :OpenAPI 文件路徑,默認(rèn)為 /opanapi.json

    • openapi_prefix :OpenAPI 文件路徑前綴,默認(rèn)為空

    • default_response_class :默認(rèn)響應(yīng)類型,默認(rèn)為 JSONResponse

      此參數(shù)繼承自 startlette 的 Response,有 HTMLResponse、PlainTextResponse、UJSONResponse、RedirectResponse、StreamingResponse、FileResponse 和 JSONResponse 七種,使用時需加載 starlette.responses 模塊

    • docs_url :交互式文檔路徑,默認(rèn)為 /docs

    • redoc_url :可選式文檔路徑,默認(rèn)為 /redoc

    • swagger_ui_oauth2_redirect_url :OAuth 重定向路徑,默認(rèn)為 /docs/oauth2-redirect

    • swagger_ui_init_oauth :OAuth 重定向字典,默認(rèn)為 None

    • middleware :中間件,默認(rèn)為空

    • exception_handlers :異常處理方法,默認(rèn)為 None

    • on_startup :app 啟動時調(diào)用的方法列表

    • on_shutdown :app 關(guān)閉時調(diào)用的方法列表

    • extra : 額外可選參數(shù)


FastAPI() 實(shí)例常用 API

get()、post() 等:定義 HTTP 請求的路由

在 FastAPI 中,app.get() 、app.post()等方法用于定義 HTTP 請求的路由。這些方法接受多個參數(shù),用于指定路由的路徑、請求處理函數(shù)、依賴項(xiàng)等。

以下是主要參數(shù):

  • path(必填):用于指定路由的路徑。這是一個字符串,表示 URL 路徑,可以包含路徑參數(shù)和查詢參數(shù)。
  • response_model:用于指定響應(yīng)模型。響應(yīng)模型是響應(yīng)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),通常使用 Pydantic 模型來定義。
  • summary:一個簡短的字符串,用于描述路由的目的或功能。
  • description:用于提供更詳細(xì)的路由說明。
  • tags:一個字符串列表,用于標(biāo)記路由,以便在文檔中分類和組織路由。
  • dependencies:一個列表,指定在路由處理函數(shù)中需要注入的依賴項(xiàng)。
  • response_description:用于指定響應(yīng)的描述信息。
  • deprecated:一個布爾值,表示路由是否已被棄用。
  • status_code:用于指定響應(yīng)的 HTTP 狀態(tài)碼。
  • response_model_includeresponse_model_exclude:用于指定在響應(yīng)模型中包含或排除的字段。
  • response_model_by_alias:一個布爾值,表示是否使用 Pydantic 模型中的別名來序列化響應(yīng)。
  • response_model_exclude_unset:一個布爾值,表示在響應(yīng)中排除未設(shè)置的字段。
  • response_model_exclude_defaults:一個布爾值,表示在響應(yīng)中排除具有默認(rèn)值的字段。
  • response_model_exclude_none:一個布爾值,表示在響應(yīng)中排除值為 None 的字段。
  • operation_id:用于指定操作的唯一標(biāo)識符。
  • deprecated:一個布爾值,表示路由是否已被棄用。
  • callbacks:一個字典,用于指定回調(diào)函數(shù)。

這些參數(shù)可以根據(jù)需求來靈活配置。一般來說,path 參數(shù)是必需的,而其他參數(shù)則根據(jù)需要來選擇性地使用。


add_middleware():添加中間件

  • add_middleware() 函數(shù):是 FastAPI 中用于添加中間件的方法。

    中間件是一種可以在請求和響應(yīng)處理過程中進(jìn)行預(yù)處理和后處理的功能??梢允褂弥虚g件來實(shí)現(xiàn)各種需求,如添加全局頭部、請求日志記錄、異常處理等。

    通過 app.add_middleware 方法將自定義中間件添加到應(yīng)用程序。當(dāng)請求到達(dá)時,F(xiàn)astAPI 會依次執(zhí)行添加的中間件,然后再調(diào)用路由處理函數(shù)。在響應(yīng)返回時,會按照相反的順序執(zhí)行中間件的后處理邏輯。

    通過添加中間件,可以在請求和響應(yīng)處理過程中實(shí)現(xiàn)一些通用的功能,而不需要在每個路由中重復(fù)編寫相同的代碼。這有助于保持代碼的整潔和可維護(hù)性。

  • 常用參數(shù):

    • middleware_class(必需):一個中間件類,希望添加到應(yīng)用程序的中間件。

      中間件類應(yīng)繼承自 fastapi.middleware.base.BaseHTTPMiddleware 或類似的基類。

    • **options:這是中間件的配置選項(xiàng),可以根據(jù)中間件的要求傳遞不同的參數(shù)。具體的選項(xiàng)取決于使用的中間件類。通常,可以傳遞任何與中間件相關(guān)的自定義參數(shù),以便在中間件類中使用。

CORSMiddleware 中間件

  • FastAPI 內(nèi)置的中間件,用于處理跨源資源共享(CORS)問題。

    CORS 是一種瀏覽器安全機(jī)制,用于控制跨域請求。在前端和后端分離的應(yīng)用中,當(dāng)前端代碼(在瀏覽器中運(yùn)行)從一個域向另一個域發(fā)出請求時,瀏覽器會執(zhí)行跨域檢查,確保只有受信任的域可以訪問資源。

    CORSMiddleware 可以幫助開發(fā)者配置 FastAPI 應(yīng)用程序以正確處理跨域請求。

    配置完中間件后,F(xiàn)astAPI 會自動處理跨域請求,并在響應(yīng)中添加適當(dāng)?shù)念^部信息以滿足 CORS 安全要求。

    請注意,CORS 配置涉及到應(yīng)用程序的安全性。在生產(chǎn)環(huán)境中,應(yīng)根據(jù)實(shí)際需求來配置 allow_origins 和其他參數(shù)。

  • 常用參數(shù)(用于配置跨域策略):

    • allow_origins:允許訪問資源的域名列表。

      可以使用 ["*"] 表示允許所有域名,但這通常不是推薦的做法。

    • allow_credentials:是否允許發(fā)送憑據(jù)(如 cookie、HTTP 認(rèn)證頭部)的請求。

      如果為 True,則需要確保在客戶端和服務(wù)器端都進(jìn)行相應(yīng)的配置,且 allow_origins 必須為具體的源,不可以是 ["*"]

    • allow_methods:允許的 HTTP 方法列表如 ["GET", "POST"]。默認(rèn)是 ["GET"]

      可以使用 ["*"] 表示允許所有方法

    • allow_headers:允許的 HTTP 頭部列表,如 ["Content-Type", "Authorization"]。默認(rèn)是 []

      可以使用 ["*"] 表示允許所有頭部

      注:Accept、Accept-Language、Content-Language 以及 Content-Type 總是被允許的

  • 代碼示例:

    from fastapi import FastAPI
    from fastapi.middleware.cors import CORSMiddleware
    
    app = FastAPI()
    
    # 添加 CORS 中間件
    app.add_middleware(
        CORSMiddleware,
        allow_origins=["http://localhost", "https://example.com"],
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )
    

自定義中間件:

  • 方式1:自定義中間件類,添加自定義中間件時通過 dispatch 參數(shù)傳遞自定義中間件類的對象

    from fastapi import FastAPI, Request
    from fastapi.middleware.cors import BaseHTTPMiddleware
    
    # 自定義中間件
    class MyMiddleware:
        def __init__(self, some_attribute: str = None):
            # some_attribute非必需,此處用于演示傳參到自定義的中間件
            self.some_attribute = some_attribute
    
        async def __call__(self, request: Request, call_next):
            # do something with the request object
            # process the request and get the response    
            response = await call_next(request)
            # do something with the response object
            return response
    
    app = FastAPI()
    # 添加自定義中間件
    app.add_middleware(BaseHTTPMiddleware, dispatch=MyMiddleware())
    
  • 方式2:自定義中間件類繼承 BaseHTTPMiddleware 類

    # 自定義中間件
    class MyMiddleware(BaseHTTPMiddleware):
        def __init__(self, app, some_attribute: str):
            super().__init__(app)
            self.some_attribute = some_attribute
    
        async def dispatch(self, request: Request, call_next):
            # do something with the request object, for example
            content_type = request.headers.get('Content-Type')
            print(content_type)
            
            # process the request and get the response    
            response = await call_next(request)
            
            return response
    
    app = FastAPI()
    # 添加自定義中間件
    app.add_middleware(MyMiddleware)
    
  • 方式3:@app.middleware 裝飾器

    在 FastAPI 中,可以使用 @app.middleware 裝飾器來添加應(yīng)用程序范圍的中間件。

    即使用 @app.middleware 裝飾器添加的中間件適用于整個 FastAPI 應(yīng)用程序,通常用于執(zhí)行全局操作,例如身份驗(yàn)證、日志記錄、異常處理等。這使得您可以在整個應(yīng)用程序中共享相同的中間件邏輯,而不需要為每個路由重復(fù)添加相同的中間件。

    此裝飾器可以接受以下兩個參數(shù)

    • middleware_type(必需):字符串參數(shù),用于指定中間件的類型。

      在 FastAPI 中,中間件可以分為以下兩種類型:

      • “http”:HTTP 中間件

        這種中間件將在每個 HTTP 請求處理期間執(zhí)行,適用于處理 HTTP 請求和響應(yīng)的操作。

      • “websocket”:WebSocket 中間件

        這種中間件將在 WebSocket 連接的處理期間執(zhí)行,適用于處理 WebSocket 請求和響應(yīng)的操作。

    • priority(可選):整數(shù)參數(shù),用于指定中間件的優(yōu)先級。

      如果應(yīng)用程序中有多個中間件,可以使用此參數(shù)來控制它們的執(zhí)行順序。

      較小的數(shù)字表示較高的優(yōu)先級,中間件將按照優(yōu)先級升序執(zhí)行。

      如果不指定 priority 參數(shù),中間件的默認(rèn)優(yōu)先級為 50。

    app = FastAPI()
    
    # 自定義中間件處理函數(shù)
    @app.middleware("http")
    async def log_requests(request: Request, call_next):
        logger.info(f"Incoming request: {request.method} {request.url}")
        response = await call_next(request)
        logger.info(f"Outgoing response: {response.status_code}")
        return response
    

websocket():創(chuàng)建 WebSocket 路由

  • websocket() 函數(shù):創(chuàng)建 WebSocket 路由,從而實(shí)現(xiàn)與客戶端之間的實(shí)時雙向通信。

    WebSocket 是一種在單個長連接上進(jìn)行全雙工通信的協(xié)議,適用于需要實(shí)時更新數(shù)據(jù)的應(yīng)用場景,例如聊天應(yīng)用、實(shí)時數(shù)據(jù)展示等。

    在客戶端,可以使用瀏覽器內(nèi)置的 WebSocket API 或其他 WebSocket 客戶端庫來與 FastAPI WebSocket 路由進(jìn)行通信。

  • 代碼示例:

    from fastapi import FastAPI, WebSocket
    
    app = FastAPI()
    
    # WebSocket 路由
    @app.websocket("/ws")
    async def websocket_endpoint(websocket: WebSocket):
        await websocket.accept()
        while True:
            data = await websocket.receive_text()
            await websocket.send_text(f"You said: {data}")
    
    • 使用 app.websocket() 方法創(chuàng)建了一個 /ws 的 WebSocket 路由。在 WebSocket 連接建立后,使用 await websocket.accept() 方法接受連接。
    • 然后,在一個無限循環(huán)中使用 await websocket.receive_text() 方法接收客戶端發(fā)送的文本消息,并使用 await websocket.send_text() 方法將消息返回給客戶端。

mount():安裝子應(yīng)用程序(靜態(tài)文件)

  • mount() 函數(shù):用于將另一個 ASGI 應(yīng)用程序安裝為 FastAPI 應(yīng)用程序的子應(yīng)用程序。

    使用 mount 安裝子應(yīng)用程序可以方便的將多個應(yīng)用程序組合在一起,實(shí)現(xiàn)更復(fù)雜的應(yīng)用程序邏輯結(jié)構(gòu)。例如,將多個 API 應(yīng)用程序組裝成一個網(wǎng)關(guān)應(yīng)用程序,將多個應(yīng)用程序組裝成一個單頁面應(yīng)用程序等等。

    支持參數(shù):

    • path :類型為字符串,必傳參數(shù),指定 url 訪問的路徑
    • app :類型為 ASGIApp,必傳參數(shù),掛載的是靜態(tài)文件對象
      • directory :指定掛載的是靜態(tài)文件目錄
    • name :指定 fastapi 內(nèi)部使用的名稱。默認(rèn)為 None
  • 訪問靜態(tài)文件方式:直接在瀏覽器輸入 ip:端口/路徑/文件全名.后綴 即可

  • 代碼示例(配置靜態(tài)文件路徑):文章來源地址http://www.zghlxwxcb.cn/news/detail-756654.html

    import uvicorn
    from fastapi import FastAPI
    from fastapi.staticfiles import StaticFiles
    
    app = FastAPI()
    # 配置靜態(tài)文件路徑
    app.mount("/static", StaticFiles(directory="static"), name="static")
    uvicorn.run(app="main:app", host="0.0.0.0", port=8000, reload=True)
    

到了這里,關(guān)于FastAPI 庫(Python 的 Web 框架)基本使用指南(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • pydantic 庫(Python 數(shù)據(jù)接口定義)基本使用指南

    pydantic 庫是 python 中用于數(shù)據(jù)接口定義檢查與設(shè)置管理的庫。 pydantic 在運(yùn)行時強(qiáng)制執(zhí)行類型提示,并在數(shù)據(jù)無效時提供友好的錯誤。 具有如下優(yōu)點(diǎn): 易于使用: Pydantic 很容易安裝與使用,并且有一個簡單的 API,使得所有開發(fā)者都可以快速上手使用。 快速驗(yàn)證: Pydantic 快速

    2024年02月04日
    瀏覽(56)
  • Python 包管理(pip、conda)基本使用指南

    Python 包管理(pip、conda)基本使用指南

    介紹 Python 有豐富的開源的第三方庫和包,可以幫助完成各種任務(wù),擴(kuò)展 Python 的功能,例如 NumPy 用于科學(xué)計算,Pandas 用于數(shù)據(jù)處理,Matplotlib 用于繪圖等。在開始編寫 Pytlhon 程序之前,可能需要安裝一些常用的Python庫,以便在編程過程中能夠輕松地使用它們。 為了方便地管

    2024年02月11日
    瀏覽(50)
  • Python 的運(yùn)算符和語句(條件、循環(huán)、異常)基本使用指南

    算數(shù)運(yùn)算符 賦值運(yùn)算符 復(fù)合賦值運(yùn)算符 比較運(yùn)算符 邏輯運(yùn)算符 算數(shù)運(yùn)算符 運(yùn)算符 描述 實(shí)例 + 加 1 + 1 輸出結(jié)果為 2 - 減 1 - 1 輸出結(jié)果為 0 * 乘 2 * 2 輸出結(jié)果為 4 / 除 10 / 2 輸出結(jié)果為 5 // 整除 9 // 4 輸出結(jié)果為 2 % 取余 9 % 4 輸出結(jié)果為 1 ** 指數(shù) 2 ** 4 輸出結(jié)果為 16, 2 * 2

    2024年02月07日
    瀏覽(24)
  • Python 函數(shù)(lambda 匿名函數(shù)、自定義函數(shù)、裝飾器)基本使用指南

    函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段 對于單行函數(shù),使用 lambda 表達(dá)式可以省去定義函數(shù)的過程,讓代碼更加簡潔; 對于不需要多次復(fù)用的函數(shù),使用 lambda 表達(dá)式可以在用完之后立即釋放,提高程序執(zhí)行的性能。 格式: 一般形式 含 if

    2024年02月08日
    瀏覽(57)
  • Python Web框架:Django、Flask和FastAPI巔峰對決

    Python Web框架:Django、Flask和FastAPI巔峰對決

    今天,我們將深入探討Python Web框架的三巨頭:Django、Flask和FastAPI。無論你是Python小白還是老司機(jī),本文都會為你解惑,帶你領(lǐng)略這三者的魅力。廢話不多說,讓我們開始這場終極對比! Django,這個強(qiáng)大的全能型框架被譽(yù)為“Web開發(fā)的瑞士軍刀”,無愧是大型項(xiàng)目的不二之選

    2024年02月12日
    瀏覽(49)
  • 試玩python的web框架 flask、fastapi、tornado、django

    試玩python的web框架 flask、fastapi、tornado、django

    先解決一下IDEA使用遠(yuǎn)程解釋器,本地代碼編輯無法代碼提示問題 常用的4個Python Web框架對比 注意 1.這里使用linux 192.168.72.126上遠(yuǎn)程解釋器,需要 /usr/bin/pip3 install flask ,host參數(shù)不要使用localhost/127.0.0.1,即只監(jiān)聽本地的訪問,會導(dǎo)致windows無法訪問到flask app 2.運(yùn)行方式增加main方法

    2024年02月17日
    瀏覽(22)
  • jsoup 框架的使用指南

    jsoup 框架的使用指南

    參考: 官方文檔 jsoup的使用 JSoup教程 jsoup 在 GitHub 的開源代碼 jsoup 是一款基于 Java 的 HTML 解析器,它提供了一套非常省力的 API,不但能直接解析某個 URL 地址、HTML 文本內(nèi)容,而且還能通過類似于 DOM、CSS 或者 jQuery 的方法來操作數(shù)據(jù),所以 jsoup 也可以被當(dāng)做爬蟲工具使用。

    2023年04月09日
    瀏覽(28)
  • JUnit與Mockito測試框架使用指南

    JUnit是一個用于編寫和運(yùn)行測試的測試框架,是Java語言最流行的單元測試框架之一。 JUnit的作用是幫助開發(fā)人員編寫高質(zhì)量的代碼。通過JUnit可以快速地自動化測試,減少手動測試成本,提高開發(fā)效率。 使用JUnit進(jìn)行測試通常需要遵循以下步驟: 新建測試類(Test Class) 在測

    2024年02月10日
    瀏覽(80)
  • Pytest精通指南(01)介紹與基本使用

    Pytest精通指南(01)介紹與基本使用

    Pytest 簡介 Pytest是一個功能強(qiáng)大的Python測試框架,它簡化了測試編寫的復(fù)雜性,并提供了豐富的插件生態(tài)系統(tǒng),以滿足各種復(fù)雜的測試需求。 與Python內(nèi)置的 unittest 框架相比, Pytest 的語法更簡潔、更易于理解,支持參數(shù)化測試、測試固件(fixtures)、斷言重寫等高級功能。 此

    2024年04月16日
    瀏覽(51)
  • requests 庫(發(fā)送 http 請求)基本使用指南

    requests 是一個 Python 第三方庫,用于發(fā)送 HTTP 請求。它提供了一種簡單和方便的方法來與 Web 服務(wù)進(jìn)行交互,如獲取網(wǎng)頁內(nèi)容、發(fā)送數(shù)據(jù)、處理 Cookie 等。 requests 是 用 python 語言編寫的,比 urllib2 模塊更簡潔 requests 支持 HTTP 連接保持和連接池,支持使用 cookie 保持會話,支持文

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包