-
File(...)
的含义-
在 FastAPI 中,
File(...)
用于接收文件上传的操作。当客户端向服务器发送文件(如图片、文档等)时,后端需要能够正确地接收和处理这些文件。File(...)
是一个特殊的类型,它告诉 FastAPI 参数是一个文件,并且会从请求体中获取文件数据。 - 例如:
-
假设你创建了一个上传文件的接口:
-
@app.post("/upload/")
-
async def upload_file(file: bytes = File(...)):
-
-
这里的
file
参数使用了File(...)
,它表示客户端必须发送一个文件,文件的内容将被读取为字节类型(bytes
)。当客户端发送请求并包含文件时,FastAPI 会自动将文件内容解析并注入到函数参数中。
-
-
-
Form(...)
的含义-
Form(...)
用于接收 HTML 表单数据。在 Web 开发中,很多情况下会使用 HTML 表单让用户输入数据,如用户名、密码等。当表单提交时,数据会以表单字段的形式发送到服务器。 - 例如:
-
有一个登录接口:
-
@app.post("/login/")
-
async def login(username: str = Form(...), password: str = Form(...)):
-
-
这里
username
和password
参数使用了Form(...)
,它表示这些参数是从 HTML 表单中获取的数据。当客户端发送一个包含表单字段的 POST 请求时,FastAPI 会根据字段名称将对应的值注入到函数参数中。
-
-
File(...)
和 Form(...)
的主要区别在于它们处理的数据类型和来源不同,File(...)
主要处理文件数据,而 Form(...)
处理的是表单字段数据。