第一章1.3:fastapi表单数据提交 快速教程

118 阅读2分钟

FastAPI 表单数据使用指南

FastAPI 是一个快速构建现代、安全和类型安全的 Web 应用的 Python3.6+ 的 web 框架。它基于 Python 3.6+ 的类型提示,并且支持 ASGI。FastAPI 使得编写 Web 应用变得简单而快速,同时也提供了强大的功能和灵活性。

在 FastAPI 中,表单数据可以通过使用 Form 装饰器来获取。表单数据通常在 POST 请求的请求体中发送,FastAPI 会自动解析这些数据并将其传递给路由函数。

下面是一个简单的 FastAPI 表单数据示例:

python
	from fastapi import FastAPI, Form  

	  

	app = FastAPI()  

	  

	@app.post("/login/")  

	async def login(username: str = Form(...), password: str = Form(...)):  

	    return {"username": username, "password": password}

在这个例子中,我们定义了一个 POST 请求的路由 /login/username 和 password 是表单数据,它们通过 Form(...) 进行定义。... 表示这些字段是必需的,如果请求中没有包含这些字段,FastAPI 会返回一个错误。

在路由函数中,我们可以通过参数名来访问这些表单数据。在这个例子中,username 和 password 参数的值就是表单数据中的对应字段的值。

除了基本的数据类型转换外,FastAPI 还允许您为表单数据设置约束和默认值。这可以帮助您更精确地控制数据的验证和默认值设置。以下是一个示例:

python
	from fastapi import FastAPI, Form, Length, Min, Max  

	  

	app = FastAPI()  

	  

	@app.post("/register/")  

	async def register(username: str = Form(..., min_length=3, max_length=20),  

	                  password: str = Form(..., min_length=8)):  

	    return {"username": username, "password": password}

在这个例子中,我们为 username 参数设置了最小长度和最大长度约束,要求它的长度必须在 3 到 20 个字符之间。同时,我们还为 password 参数设置了最小长度约束,要求它的长度至少为 8 个字符。如果请求的表单数据不满足这些约束条件,FastAPI 将返回一个错误。

总结起来,FastAPI 表单数据的使用非常简单。只需在路由装饰器中使用 Form(...) 定义表单数据,然后在函数签名中为参数指定类型即可。通过设置约束和默认值,您可以更精确地控制数据的验证和默认值设置。在实际应用中,您还可以结合其他 FastAPI 功能,如请求体、响应体等,构建更复杂、更灵活的 Web 应用。