diff --git a/docs/zh-hant/docs/_llm-test.md b/docs/zh-hant/docs/_llm-test.md index f4c1efca82..0ea674cd81 100644 --- a/docs/zh-hant/docs/_llm-test.md +++ b/docs/zh-hant/docs/_llm-test.md @@ -124,10 +124,6 @@ works(foo="bar") # 這可以運作 🎉 //// tab | 測試 -/// info | 資訊 -Some text -/// - /// note | 注意 Some text /// @@ -136,10 +132,6 @@ Some text Some text /// -/// check | 檢查 -Some text -/// - /// tip | 提示 Some text /// diff --git a/docs/zh-hant/docs/alternatives.md b/docs/zh-hant/docs/alternatives.md index ee99faf99f..fc3f7b38e2 100644 --- a/docs/zh-hant/docs/alternatives.md +++ b/docs/zh-hant/docs/alternatives.md @@ -36,7 +36,7 @@ Django REST Framework 由 Tom Christie 創建。他同時也是 Starlette 與 Uv /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 提供自動化的 API 文件網頁使用者介面。 @@ -56,7 +56,7 @@ Flask 是一個「微框架」,它不包含資料庫整合,也沒有像 Djan 基於 Flask 的簡潔,它看起來很適合用來構建 API。接下來要找的,就是 Flask 世界裡的「Django REST Framework」。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 成為一個微框架,讓所需的工具與元件能輕鬆搭配組合。 @@ -98,7 +98,7 @@ def read_url(): 看看 `requests.get(...)` 與 `@app.get(...)` 的相似之處。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** * 擁有簡單直觀的 API。 * 直接使用 HTTP 方法名稱(操作),以直接、直觀的方式表達。 @@ -118,7 +118,7 @@ def read_url(): 因此,談到 2.0 版時常說「Swagger」,而 3+ 版則是「OpenAPI」。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 採用並使用開放的 API 規格標準,而非自訂格式。 @@ -147,7 +147,7 @@ API 需要的另一個重要功能是資料驗證,確保資料在特定條件 但它誕生於 Python 型別提示出現之前。因此,為了定義每個 結構(schema),你需要使用 Marshmallow 提供的特定工具與類別。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 用程式碼定義能自動提供資料型別與驗證的「schemas」。 @@ -163,13 +163,13 @@ Webargs 是在多個框架(包含 Flask)之上提供該功能的工具。 它是一個很棒的工具,在有 **FastAPI** 之前我也經常使用。 -/// info +/// note Webargs 由與 Marshmallow 相同的開發者創建。 /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 自動驗證傳入請求資料。 @@ -193,13 +193,13 @@ Marshmallow 與 Webargs 以外掛提供驗證、解析與序列化。 編輯器幫不上太多忙。而且如果我們修改了參數或 Marshmallow 的 schemas 卻忘了同步修改 YAML docstring,產生的結構就會過時。 -/// info +/// note APISpec 由與 Marshmallow 相同的開發者創建。 /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 支援 API 的開放標準 OpenAPI。 @@ -225,13 +225,13 @@ APISpec 由與 Marshmallow 相同的開發者創建。 而這些全端產生器,也成為了 [**FastAPI** 專案產生器](project-generation.md) 的基礎。 -/// info +/// note Flask-apispec 由與 Marshmallow 相同的開發者創建。 /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 從定義序列化與驗證的相同程式碼,自動產生 OpenAPI 結構(schema)。 @@ -251,7 +251,7 @@ Flask-apispec 由與 Marshmallow 相同的開發者創建。 它無法很好地處理巢狀模型。若請求的 JSON 主體中有內層欄位,且這些內層欄位又是巢狀 JSON 物件,就無法被妥善地文件化與驗證。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 使用 Python 型別以獲得優秀的編輯器支援。 @@ -271,7 +271,7 @@ Flask-apispec 由與 Marshmallow 相同的開發者創建。 /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 想辦法達到瘋狂的效能。 @@ -287,7 +287,7 @@ Falcon 是另一個高效能 Python 框架,設計上極簡,並作為其他 因此,資料驗證、序列化與文件必須以程式碼手動完成,無法自動化。或者需在 Falcon 之上實作另一層框架(如 Hug)。其他受 Falcon 設計啟發的框架也有同樣的區別:將 request 與 response 物件作為參數。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 設法取得優秀的效能。 @@ -313,7 +313,7 @@ Falcon 是另一個高效能 Python 框架,設計上極簡,並作為其他 路由需要在單一地方宣告,使用在其他地方宣告的函式(而不是用可以直接放在端點處理函式上方的裝飾器)。這更接近 Django 的作法,而不是 Flask(與 Starlette)的作法。它在程式碼中分離了其實相當緊密耦合的事物。 -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 用模型屬性的「預設值」來定義資料型別的額外驗證。這提升了編輯器支援,而這在當時的 Pydantic 還不支援。 @@ -335,13 +335,13 @@ Hug 是最早使用 Python 型別提示來宣告 API 參數型別的框架之一 由於它基於同步 Python 網頁框架的舊標準(WSGI),無法處理 WebSocket 與其他功能,儘管效能仍然很高。 -/// info +/// note Hug 由 Timothy Crosley 創建,他同時也是 [`isort`](https://github.com/timothycrosley/isort) 的作者,一個自動排序 Python 匯入的好工具。 /// -/// check | 啟發 **FastAPI** 的想法 +/// tip | 啟發 **FastAPI** 的想法 Hug 啟發了 APIStar 的部分設計,也是我覺得最有前景的工具之一,與 APIStar 並列。 @@ -375,7 +375,7 @@ Hug 啟發 **FastAPI** 在函式中宣告 `response` 參數以設定標頭與 Co 現在的 APIStar 是一套用於驗證 OpenAPI 規格的工具,不是網頁框架。 -/// info +/// note APIStar 由 Tom Christie 創建。他也創建了: @@ -385,7 +385,7 @@ APIStar 由 Tom Christie 創建。他也創建了: /// -/// check | 啟發 **FastAPI** +/// tip | 啟發 **FastAPI** 存在。 @@ -409,7 +409,7 @@ Pydantic 是基於 Python 型別提示,定義資料驗證、序列化與文件 它可與 Marshmallow 相提並論。儘管在效能測試中它比 Marshmallow 更快。而且因為它基於相同的 Python 型別提示,編輯器支援也很出色。 -/// check | **FastAPI** 用於 +/// tip | **FastAPI** 用於 處理所有資料驗證、資料序列化與自動模型文件(基於 JSON Schema)。 @@ -452,7 +452,7 @@ ASGI 是由 Django 核心團隊成員正在開發的新「標準」。它尚未 /// -/// check | **FastAPI** 用於 +/// tip | **FastAPI** 用於 處理所有核心網頁部分,並在其上加上功能。 @@ -470,7 +470,7 @@ Uvicorn 是基於 uvloop 與 httptools 的極速 ASGI 伺服器。 它是 Starlette 與 **FastAPI** 推薦使用的伺服器。 -/// check | **FastAPI** 建議用作 +/// tip | **FastAPI** 建議用作 執行 **FastAPI** 應用的主要網頁伺服器。 diff --git a/docs/zh-hant/docs/async.md b/docs/zh-hant/docs/async.md index 9a08938ca5..74eb8081da 100644 --- a/docs/zh-hant/docs/async.md +++ b/docs/zh-hant/docs/async.md @@ -139,7 +139,7 @@ def results(): -/// info +/// note | 注意 漂亮的插畫來自 [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot)。 🎨 @@ -205,7 +205,7 @@ def results(): 整個過程中沒有太多的談情說愛,因為大部分時間 🕙 都花在櫃檯前等待。😞 -/// info +/// note | 注意 漂亮的插畫來自 [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot)。 🎨 diff --git a/docs/zh-hant/docs/fastapi-cli.md b/docs/zh-hant/docs/fastapi-cli.md index 554ef4f2df..55220afe12 100644 --- a/docs/zh-hant/docs/fastapi-cli.md +++ b/docs/zh-hant/docs/fastapi-cli.md @@ -95,7 +95,7 @@ entrypoint = "backend.main:app" from backend.main import app ``` -### 帶路徑的 `fastapi dev` { #fastapi-dev-with-path } +### 帶路徑或使用 `--entrypoint` 選項的 `fastapi dev` { #fastapi-dev-with-path-or-with-entrypoint-cli-option } 你也可以把檔案路徑傳給 `fastapi dev` 指令,它會推測要使用的 FastAPI app 物件: @@ -103,7 +103,13 @@ from backend.main import app $ fastapi dev main.py ``` -但這樣每次呼叫 `fastapi` 指令時都得記得傳入正確的路徑。 +或者,你也可以把 `--entrypoint` 選項傳給 `fastapi dev` 指令: + +```console +$ fastapi dev --entrypoint main:app +``` + +但這樣每次呼叫 `fastapi` 指令時都得記得傳入正確的路徑或 entrypoint。 此外,其他工具可能找不到它,例如 [VS Code 擴充套件](editor-support.md) 或 [FastAPI Cloud](https://fastapicloud.com),因此建議在 `pyproject.toml` 中使用 `entrypoint`。 diff --git a/docs/zh-hant/docs/features.md b/docs/zh-hant/docs/features.md index 63194e2556..82d4871c10 100644 --- a/docs/zh-hant/docs/features.md +++ b/docs/zh-hant/docs/features.md @@ -63,7 +63,7 @@ second_user_data = { my_second_user: User = User(**second_user_data) ``` -/// info +/// note `**second_user_data` 意思是: @@ -97,7 +97,7 @@ my_second_user: User = User(**second_user_data) ### 簡潔 { #short } -FastAPI 為你提供了**預設值**,讓你不必在初期進行繁瑣的配置,一切都可以自動運作。如果你有更具體的需求,則可以進行調整和自定義, +FastAPI 為你提供了**預設值**,讓你不必在初期進行繁瑣的配置,一切都可以自動運作。如果你有更具體的需求,則可以進行調整和自定義。 但預設情況下,一切都「直接可用」。 diff --git a/docs/zh-hant/docs/help-fastapi.md b/docs/zh-hant/docs/help-fastapi.md index 343e0dba3e..69af48a56f 100644 --- a/docs/zh-hant/docs/help-fastapi.md +++ b/docs/zh-hant/docs/help-fastapi.md @@ -1,18 +1,12 @@ -# 協助 FastAPI - 取得協助 { #help-fastapi-get-help } +# 協助 { #help } -你喜歡 **FastAPI** 嗎? +你想要協助 FastAPI,或取得關於 FastAPI 的協助嗎? -你願意協助 FastAPI、其他使用者,以及作者嗎? - -或是你想獲得 **FastAPI** 的協助? - -有一些非常簡單的方式可以幫忙(有些只需要點一兩下)。 - -而且也有多種方式可以取得協助。 +有一些非常簡單的方式可以提供協助並取得協助。 ## 訂閱電子報 { #subscribe-to-the-newsletter } -你可以訂閱(不常發送的)[**FastAPI 與夥伴**電子報](newsletter.md),隨時掌握: +你可以訂閱(不常寄送的)[**FastAPI 與夥伴**電子報](newsletter.md),隨時掌握: * 關於 FastAPI 與夥伴的最新消息 🚀 * 教學指南 📝 @@ -20,9 +14,13 @@ * 破壞性變更 🚨 * 小技巧與祕訣 ✅ -## 在 X(Twitter)關注 FastAPI { #follow-fastapi-on-x-twitter } +## 線上關注 FastAPI { #follow-fastapi-online } -[在 **X(Twitter)** 關注 @fastapi](https://x.com/fastapi),獲取 **FastAPI** 的最新消息。🐦 +你可以在多個平台線上關注 **FastAPI**: + +* [**X / Twitter** 上的 @fastapi](https://x.com/fastapi) +* [**Bluesky** 上的 @fastapi.tiangolo.com](https://bsky.app/profile/fastapi.tiangolo.com) +* [**LinkedIn** 上的 FastAPI](https://www.linkedin.com/company/fastapi/) ## 在 GitHub 為 **FastAPI** 加星 { #star-fastapi-in-github } @@ -38,191 +36,35 @@ 這樣每當 **FastAPI** 有新的發行(新版本)包含錯誤修復與新功能時,你就會收到通知(寄到你的電子郵件)。 -## 與作者連結 { #connect-with-the-author } - -你可以與作者 [我(Sebastián Ramírez / `tiangolo`)](https://tiangolo.com) 建立連結。 - -你可以: - -* [在 **GitHub** 關注我](https://github.com/tiangolo)。 - * 看看我建立的其他開源專案,可能對你有幫助。 - * 關注我以便知道我何時建立新的開源專案。 -* [在 **X(Twitter)**](https://x.com/tiangolo) 或 [Mastodon](https://fosstodon.org/@tiangolo) 關注我。 - * 告訴我你如何使用 FastAPI(我很愛聽這些)。 - * 接收我發布公告或釋出新工具時的消息。 - * 你也可以[在 X(Twitter)關注 @fastapi](https://x.com/fastapi)(另外的帳號)。 -* [在 **LinkedIn** 關注我](https://www.linkedin.com/in/tiangolo/)。 - * 接收我發布公告或釋出新工具時的消息(不過我更常用 X(Twitter)🤷‍♂)。 -* 在 [**Dev.to**](https://dev.to/tiangolo) 或 [**Medium**](https://medium.com/@tiangolo) 閱讀我寫的內容(或關注我)。 - * 閱讀我的想法、文章,以及我建立的工具。 - * 關注我以便在我發佈新內容時能第一時間看到。 - -## 在 X(Twitter)發文談談 **FastAPI** { #tweet-about-fastapi } - -[發一則關於 **FastAPI** 的推文](https://x.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi),讓我與其他人知道你為什麼喜歡它。🎉 - -我很樂於聽到 **FastAPI** 是如何被使用、你喜歡它的哪些地方、在哪個專案/公司使用它等等。 +## 關注作者 { #follow-the-author } -## 為 FastAPI 投票 { #vote-for-fastapi } +你可以在幾個地方關注[我(Sebastián Ramírez / `tiangolo`)](https://tiangolo.com),當我有關於 FastAPI 與夥伴的消息時會在那裡分享: -* [在 Slant 為 **FastAPI** 投票](https://www.slant.co/options/34241/~fastapi-review)。 -* [在 AlternativeTo 為 **FastAPI** 投票](https://alternativeto.net/software/fastapi/about/)。 -* [在 StackShare 表示你使用 **FastAPI**](https://stackshare.io/pypi-fastapi)。 +* [**GitHub** 上的 @tiangolo](https://github.com/tiangolo)。 +* [**X(Twitter)** 上的 @tiangolo](https://x.com/tiangolo) +* [**Bluesky** 上的 @tiangolo.com](https://bsky.app/profile/tiangolo.com) +* [**LinkedIn** 上的 @tiangolo](https://www.linkedin.com/in/tiangolo/)。 ## 在 GitHub 幫助他人解答問題 { #help-others-with-questions-in-github } -你可以嘗試幫助他人回答以下地方的問題: +你可以嘗試在 [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered) 幫助他人回答問題。 -* [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered) -* [GitHub Issues](https://github.com/fastapi/fastapi/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+) - -很多時候你可能已經知道這些問題的解答。🤓 +很多時候你可能已經知道這些問題的答案。🤓 如果你經常幫大家解決問題,你會成為官方的 [FastAPI 專家](fastapi-people.md#fastapi-experts)。🎉 -請記得,最重要的是:盡量友善。大家可能帶著挫折而來,很多時候提問方式不夠理想,但請盡你所能保持友善。🤗 - -**FastAPI** 社群的理念是友善且歡迎大家。同時,也不要接受霸凌或對他人不尊重的行為。我們要彼此照顧。 - ---- - -以下是在(Discussions 或 Issues)中幫助他人解決問題的方式: - -### 先理解問題 { #understand-the-question } - -* 先確認你是否能理解提問者的**目的**與使用情境。 - -* 接著看看問題(絕大多數是提問)是否**清楚**。 - -* 很多時候,提問是基於使用者自己想像中的解法,但可能有**更好**的方法。如果你能更理解他們的問題與使用情境,你也許能提出更好的**替代解法**。 - -* 如果你無法理解問題,請要求提供更多**細節**。 - -### 重現問題 { #reproduce-the-problem } +請記得,最重要的是:盡量友善。🤗 -在大多數情況與問題中,都會與對方的**原始程式碼**有關。 +### 如何協助 { #how-to-help } -很多時候他們只會貼出一小段程式碼,但那不足以**重現問題**。 - -* 你可以請他們提供一個[最小可重現範例](https://stackoverflow.com/help/minimal-reproducible-example),讓你可以**複製貼上**並在本機執行,看到與他們相同的錯誤或行為,或更好地理解他們的使用情境。 - -* 如果你有心力,你也可以嘗試自己**建立一個範例**,僅依據問題描述來還原。不過請記得這可能很耗時,或許更好的是先請他們把問題說清楚。 - -### 提出解法建議 { #suggest-solutions } - -* 在能夠理解問題後,你可以給出可能的**答案**。 - -* 很多時候,最好能理解他們的**底層問題或使用情境**,因為可能有比他們嘗試的方法更好的解決之道。 - -### 請求關閉議題 { #ask-to-close } - -如果他們回覆了,你很可能已經解決了他們的問題,恭喜,**你是英雄**!🦸 - -* 現在,如果問題已解決,你可以請他們: - * 在 GitHub Discussions:把某則留言標記為**答案**。 - * 在 GitHub Issues:**關閉**該 issue。 - -## 追蹤 GitHub 儲存庫 { #watch-the-github-repository } - -你可以在 GitHub「watch」FastAPI(點擊右上角的「watch」按鈕):[https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀 - -如果你選擇「Watching」而不是「Releases only」,當有人建立新的 issue 或問題時你會收到通知。你也可以指定只想被通知新的 issues、discussions、PR 等等。 - -接著你就可以嘗試幫忙解決那些問題。 +請依照這裡的[協助指南](https://tiangolo.com/open-source/help/#help-others-with-questions-in-github)。 ## 提問 { #ask-questions } 你可以在 GitHub 儲存庫[建立一個新的問題(Question)](https://github.com/fastapi/fastapi/discussions/new?category=questions),例如用來: * 提出**問題**或詢問某個**疑難**。 -* 建議一個新的**功能**。 - -**注意**:如果你這麼做,那我也會請你去幫助其他人。😉 - -## 審核 Pull Request { #review-pull-requests } - -你可以幫我審查他人的 Pull Request。 - -再強調一次,請盡量保持友善。🤗 - ---- - -以下是審查 Pull Request 時需要注意與如何進行: - -### 先理解要解的問題 { #understand-the-problem } - -* 首先,確認你**理解了該 Pull Request 想解決的問題**。可能在 GitHub Discussion 或 issue 中有更長的討論。 - -* 也很有可能這個 Pull Request 其實不需要,因為問題可以用**不同的方法**解決。那你就可以提出或詢問那個方向。 - -### 不用太在意風格 { #dont-worry-about-style } - -* 不要太擔心像是提交訊息(commit message)的風格,我會用 squash and merge 並手動調整提交內容。 - -* 也不用太在意程式碼風格規範,已經有自動化工具在檢查。 - -如果還有其他風格或一致性的需求,我會直接提出請求,或是在上面再補上需要的修改提交。 - -### 檢查程式碼 { #check-the-code } - -* 檢查並閱讀程式碼,看看是否合理,**在本機執行**並確認它是否真的解決了問題。 - -* 然後**留言**說你做了這些,這樣我才知道你真的檢查過了。 - -/// info - -很遺憾,我不能僅因為一個 PR 有好幾個核可就直接信任它。 - -發生過好幾次,PR 有 3、5 個甚至更多核可,可能是因為描述很吸引人,但當我實際檢查時,它其實是壞的、有 bug,或是根本沒有解決它宣稱要解決的問題。😅 - -所以,真的很重要的是你要實際閱讀並執行程式碼,並在留言中讓我知道你做過了。🤓 - -/// - -* 如果 PR 有機會再被簡化,你可以提出要求,但沒必要太過挑剔,很多事情是主觀的(我自己也會有主觀看法 🙈),所以最好聚焦在關鍵的事情上。 - -### 測試 { #tests } - -* 幫我確認 PR 有**測試**。 - -* 檢查在 PR 之前,測試會**失敗**。🚨 - -* 然後檢查在 PR 之後,測試會**通過**。✅ - -* 很多 PR 並沒有測試,你可以**提醒**他們加上測試,或甚至**建議**一些測試。這是最花時間的事之一,而你可以在這方面幫上很大的忙。 - -* 接著也請留言你嘗試了什麼,這樣我就知道你有檢查過。🤓 - -## 建立 Pull Request { #create-a-pull-request } - -你可以透過 Pull Request 來[貢獻](contributing.md)原始碼,例如: - -* 修正文檔中你發現的錯字。 -* 分享你建立或發現的 FastAPI 相關文章、影片或 podcast,方法是[編輯這個檔案](https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml)。 - * 請確保把你的連結加到對應章節的開頭。 -* 協助把[文件翻譯](contributing.md#translations)成你的語言。 - * 你也可以幫忙審查他人提交的翻譯。 -* 提議新的文件章節。 -* 修復既有的 issue/bug。 - * 記得要加上測試。 -* 新增一個功能。 - * 記得要加上測試。 - * 若相關,請記得補上文件。 - -## 協助維護 FastAPI { #help-maintain-fastapi } - -幫我一起維護 **FastAPI**!🤓 - -有很多事情要做,而其中大多數其實**你**就能完成。 - -你現在就能做的主要任務有: - -* [在 GitHub 幫助他人解答問題](#help-others-with-questions-in-github)(見上方章節)。 -* [審核 Pull Request](#review-pull-requests)(見上方章節)。 - -這兩件事是**最耗時**的。這也是維護 FastAPI 的主要工作。 - -如果你能在這方面幫我,**你就是在幫我維護 FastAPI**,並確保它能**更快更好地前進**。🚀 +* 建議新的**功能**。 ## 加入聊天室 { #join-the-chat } @@ -230,7 +72,7 @@ /// tip -若要提問,請到 [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/new?category=questions),在那裡更有機會獲得[FastAPI 專家](fastapi-people.md#fastapi-experts)的協助。 +若要提問,請在 GitHub Discussions 提問,在那裡你更有可能獲得協助。 聊天室請僅用於其他一般性的交流。 @@ -240,16 +82,6 @@ 請記得,由於聊天室允許較「自由的對話」,很容易提出過於籠統、較難回答的問題,因此你可能不會得到答案。 -在 GitHub 上,模板會引導你寫出合適的提問,讓你更容易得到好的解答,甚至在提問前就自己解決問題。而且在 GitHub 上,我能確保最終都會回覆(即使需要一些時間)。我個人無法在聊天系統做到這一點。😅 - -聊天系統中的對話也不像 GitHub 那樣容易被搜尋,因此問題與答案可能在對話中淹沒。而且只有 GitHub 上的問題與回答才會被計入成為[FastAPI 專家](fastapi-people.md#fastapi-experts),因此你在 GitHub 上更有機會獲得關注。 - -另一方面,聊天室裡有成千上萬的使用者,所以幾乎隨時都有很大的機會能找到人聊天。😄 - -## 贊助作者 { #sponsor-the-author } - -如果你的**產品/公司**依賴或與 **FastAPI** 相關,且你想觸及它的使用者,你可以透過 [GitHub sponsors](https://github.com/sponsors/tiangolo) 贊助作者(我)。依據不同級別,你可能會得到一些額外福利,例如在文件中顯示徽章。🎁 - ---- +在 GitHub 上,模板會引導你寫出合適的提問,讓你更容易得到好的解答,甚至在提問前就自己解決問題。 -感謝!🚀 +聊天系統中的對話也不像 GitHub 那樣容易被搜尋,常常會淹沒在對話中。 diff --git a/docs/zh-hant/docs/python-types.md b/docs/zh-hant/docs/python-types.md index 4193069ea7..dc71602610 100644 --- a/docs/zh-hant/docs/python-types.md +++ b/docs/zh-hant/docs/python-types.md @@ -172,7 +172,7 @@ def some_function(data: Any): {* ../../docs_src/python_types/tutorial006_py310.py hl[1] *} -/// info | 資訊 +/// note | 注意 方括號裡的那些內部型別稱為「型別參數」。 @@ -283,7 +283,7 @@ def some_function(data: Any): {* ../../docs_src/python_types/tutorial011_py310.py *} -/// info | 資訊 +/// note | 注意 想了解更多 [Pydantic,請查看它的文件](https://docs.pydantic.dev/)。 @@ -341,7 +341,7 @@ Python 本身不會對這個 `Annotated` 做任何事。對編輯器與其他工 重點是,透過在單一位置使用標準的 Python 型別(而不是新增更多類別、裝飾器等),**FastAPI** 會幫你完成很多工作。 -/// info | 資訊 +/// note | 注意 如果你已經完整讀完整個教學,並回來想多看一些關於型別的內容,一個不錯的資源是 [`mypy` 的「小抄」](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html)。 diff --git a/docs/zh-hant/docs/tutorial/bigger-applications.md b/docs/zh-hant/docs/tutorial/bigger-applications.md index a37c16c39e..73adef3f01 100644 --- a/docs/zh-hant/docs/tutorial/bigger-applications.md +++ b/docs/zh-hant/docs/tutorial/bigger-applications.md @@ -4,7 +4,7 @@ FastAPI 提供了一個方便的工具,讓你在維持彈性的同時,幫你組織應用程式的結構。 -/// info | 資訊 +/// note | 注意 如果你來自 Flask,這相當於 Flask 的 Blueprints。 @@ -194,7 +194,7 @@ async def read_item(item_id: str): /// -/// check | 檢查 +/// tip | 提示 `prefix`、`tags`、`responses` 與 `dependencies` 參數(就像許多其他情況一樣)只是 FastAPI 提供的功能,幫助你避免重複程式碼。 @@ -339,7 +339,7 @@ from .routers import items, users from app.routers import items, users ``` -/// info | 資訊 +/// note | 注意 第一種是「相對匯入」: @@ -382,7 +382,7 @@ from .routers.users import router {* ../../docs_src/bigger_applications/app_an_py310/main.py hl[10:11] title["app/main.py"] *} -/// info | 資訊 +/// note | 注意 `users.router` 是位於 `app/routers/users.py` 檔案內的 `APIRouter`。 @@ -402,7 +402,7 @@ from .routers.users import router /// -/// check | 檢查 +/// tip | 提示 把 router 納入時不需要擔心效能。 @@ -451,7 +451,7 @@ from .routers.users import router 而且它會和透過 `app.include_router()` 加入的其他路徑操作正確地一起運作。 -/// info | 非常技術細節 +/// note | 非常技術細節 注意:這是個非常技術性的細節,你大概可以直接略過。 diff --git a/docs/zh-hant/docs/tutorial/header-params.md b/docs/zh-hant/docs/tutorial/header-params.md index 2d6aade4bb..805eb9cc7f 100644 --- a/docs/zh-hant/docs/tutorial/header-params.md +++ b/docs/zh-hant/docs/tutorial/header-params.md @@ -16,7 +16,7 @@ {* ../../docs_src/header_params/tutorial001_an_py310.py hl[9] *} -/// note | 注意 +/// note | 技術細節 `Header` 與 `Path`、`Query`、`Cookie` 是「姊妹」類別,同樣繼承自共同的 `Param` 類別。 @@ -24,7 +24,7 @@ /// -/// info | 說明 +/// note | 注意 要宣告標頭,必須使用 `Header`,否則參數會被解讀為查詢參數。 diff --git a/docs/zh-hant/docs/virtual-environments.md b/docs/zh-hant/docs/virtual-environments.md index c0ac224748..a4d649c133 100644 --- a/docs/zh-hant/docs/virtual-environments.md +++ b/docs/zh-hant/docs/virtual-environments.md @@ -2,7 +2,7 @@ 當你在 Python 專案中工作時,你可能會需要使用一個**虛擬環境**(或類似的機制)來隔離你為每個專案安裝的套件。 -/// info +/// note 如果你已經了解虛擬環境,知道如何建立和使用它們,你可以考慮跳過這一部分。🤓 @@ -18,7 +18,7 @@ /// -/// info +/// note 這個頁面將教你如何使用**虛擬環境**以及了解它們的工作原理。 @@ -385,7 +385,7 @@ $ uv pip install -r requirements.txt //// -/// details | 關於 `requirements.txt` +/// details | `requirements.txt` 一個包含一些套件的 `requirements.txt` 檔案看起來應該是這樣的: