mirror of
https://github.com/fastapi/fastapi.git
synced 2026-06-15 11:01:13 -04:00
Compare commits
1 Commits
master
...
translate-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6314fa266 |
@@ -492,9 +492,7 @@ item: Item
|
||||
|
||||
### 部署你的应用(可选) { #deploy-your-app-optional }
|
||||
|
||||
你可以选择把 FastAPI 应用部署到 [FastAPI Cloud](https://fastapicloud.com),如果还没有的话去加入候补名单吧。🚀
|
||||
|
||||
如果你已经有 **FastAPI Cloud** 账号(我们从候补名单邀请了你 😉),你可以用一个命令部署你的应用。
|
||||
你可以选择用一条命令将 FastAPI 应用部署到 [FastAPI Cloud](https://fastapicloud.com)。🚀
|
||||
|
||||
<div class="termy">
|
||||
|
||||
@@ -510,6 +508,8 @@ Deploying to FastAPI Cloud...
|
||||
|
||||
</div>
|
||||
|
||||
CLI 会自动检测你的 FastAPI 应用并将其部署到云端。如果你尚未登录,浏览器会打开以完成认证流程。
|
||||
|
||||
就这样!现在你可以通过该 URL 访问你的应用了。✨
|
||||
|
||||
#### 关于 FastAPI Cloud { #about-fastapi-cloud }
|
||||
|
||||
@@ -108,7 +108,7 @@ q: str | None = None
|
||||
|
||||
{* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *}
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
`Body` 同样具有与 `Query`、`Path` 以及其他后面将看到的类完全相同的额外校验和元数据参数。
|
||||
|
||||
@@ -123,7 +123,7 @@ q: str | None = None
|
||||
但是,如果你希望它期望一个拥有 `item` 键并在值中包含模型内容的 JSON,就像在声明额外的请求体参数时所做的那样,则可以使用一个特殊的 `Body` 参数 `embed`:
|
||||
|
||||
```Python
|
||||
item: Item = Body(embed=True)
|
||||
item: Annotated[Item, Body(embed=True)]
|
||||
```
|
||||
|
||||
比如:
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
声明 `Cookie` 参数的方式与声明 `Query` 和 `Path` 参数相同。
|
||||
|
||||
第一个值是默认值,还可以传递所有验证参数或注释参数:
|
||||
你可以定义默认值,以及所有额外的验证或注解参数:
|
||||
|
||||
{* ../../docs_src/cookie_params/tutorial001_an_py310.py hl[9] *}
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
///
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
必须使用 `Cookie` 声明 cookie 参数,否则该参数会被解释为查询参数。
|
||||
|
||||
///
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
请注意,由于**浏览器会以特殊方式并在幕后处理 cookies**,它们**不会**轻易允许**JavaScript**访问它们。
|
||||
|
||||
|
||||
@@ -42,12 +42,14 @@ $ python myapp.py
|
||||
|
||||
那么文件中由 Python 自动创建的内部变量 `__name__`,会将字符串 `"__main__"` 作为值。
|
||||
|
||||
所以,下面这部分代码才会运行:
|
||||
所以,这一段:
|
||||
|
||||
```Python
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
```
|
||||
|
||||
会运行。
|
||||
|
||||
---
|
||||
|
||||
如果你是导入这个模块(文件)就不会这样。
|
||||
@@ -62,13 +64,15 @@ from myapp import app
|
||||
|
||||
在这种情况下,`myapp.py` 内部的自动变量不会有值为 `"__main__"` 的变量 `__name__`。
|
||||
|
||||
所以,下面这一行不会被执行:
|
||||
所以,这一行:
|
||||
|
||||
```Python
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
```
|
||||
|
||||
/// info | 信息
|
||||
不会被执行。
|
||||
|
||||
/// note | 注意
|
||||
|
||||
更多信息请检查 [Python 官方文档](https://docs.python.org/3/library/__main__.html).
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ OpenAPI 概图会自动添加标签,供 API 文档接口使用:
|
||||
|
||||
## 从 docstring 获取描述 { #description-from-docstring }
|
||||
|
||||
描述内容比较长且占用多行时,可以在函数的 <dfn title="作为函数内部的第一个表达式(不赋给任何变量)的多行字符串,用于文档用途">docstring</dfn> 中声明*路径操作*的描述,**FastAPI** 会从中读取。
|
||||
描述内容比较长且占用多行时,可以在函数的 <dfn title="作为函数内部的第一个表达式(不赋给任何变量)的多行字符串,用于文档用途">文档字符串</dfn> 中声明*路径操作*的描述,**FastAPI** 会从中读取。
|
||||
|
||||
文档字符串支持 [Markdown](https://en.wikipedia.org/wiki/Markdown),能正确解析和显示 Markdown 的内容,但要注意文档字符串的缩进。
|
||||
|
||||
@@ -72,13 +72,13 @@ OpenAPI 概图会自动添加标签,供 API 文档接口使用:
|
||||
|
||||
{* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
注意,`response_description` 只用于描述响应,`description` 一般则用于描述*路径操作*。
|
||||
|
||||
///
|
||||
|
||||
/// check | 检查
|
||||
/// tip | 提示
|
||||
|
||||
OpenAPI 规定每个*路径操作*都要有响应描述。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
FastAPI 在 0.95.0 版本添加了对 `Annotated` 的支持(并开始推荐使用它)。
|
||||
|
||||
@@ -131,7 +131,7 @@ Python 不会对这个 `*` 做任何事,但它会知道之后的所有参数
|
||||
* `lt`:小于(`l`ess `t`han)
|
||||
* `le`:小于等于(`l`ess than or `e`qual)
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
`Query`、`Path` 以及你后面会看到的其他类,都是一个通用 `Param` 类的子类。
|
||||
|
||||
@@ -139,7 +139,7 @@ Python 不会对这个 `*` 做任何事,但它会知道之后的所有参数
|
||||
|
||||
///
|
||||
|
||||
/// note | 注意
|
||||
/// note | 技术细节
|
||||
|
||||
当你从 `fastapi` 导入 `Query`、`Path` 和其他对象时,它们实际上是函数。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
你可以使用 `File` 定义由客户端上传的文件。
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
要接收上传的文件,请先安装 [`python-multipart`](https://github.com/Kludex/python-multipart)。
|
||||
|
||||
@@ -28,7 +28,7 @@ $ pip install python-multipart
|
||||
|
||||
{* ../../docs_src/request_files/tutorial001_an_py310.py hl[9] *}
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
`File` 是直接继承自 `Form` 的类。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
FastAPI 支持同时使用 `File` 和 `Form` 定义文件和表单字段。
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
接收上传的文件和/或表单数据,首先安装 [`python-multipart`](https://github.com/Kludex/python-multipart)。
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
`status_code` 参数接收表示 HTTP 状态码的数字。
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
`status_code` 还能接收 `IntEnum` 类型,比如 Python 的 [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus)。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 使用 `TestClient` { #using-testclient }
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
要使用 `TestClient`,先要安装 [`httpx`](https://www.python-httpx.org)。
|
||||
|
||||
@@ -142,7 +142,7 @@ $ pip install httpx
|
||||
|
||||
关于如何传数据给后端的更多信息(使用 `httpx` 或 `TestClient`),请查阅 [HTTPX 文档](https://www.python-httpx.org)。
|
||||
|
||||
/// info | 信息
|
||||
/// note | 注意
|
||||
|
||||
注意 `TestClient` 接收可以被转化为JSON的数据,而不是Pydantic模型。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user