使用Python的FastAPI和Form()函数实现表单数据处理和输入验证
FastAPI是一个现代、快速(高性能)的web框架,用于构建API。它基于Python 3.7+的类型注解,提供了自动的请求和响应验证,以及自动生成交互式API文档的功能。
在FastAPI中,我们可以使用Form()函数来处理表单数据和进行输入验证。Form()函数是FastAPI的一个便捷函数,它用于解析表单数据并提供验证功能。下面是一个使用FastAPI和Form()函数实现表单数据处理和输入验证的例子。
首先,我们需要安装FastAPI和uvicorn(用于启动FastAPI应用):
pip install fastapi uvicorn
接下来,创建一个名为main.py的Python脚本,其中包含以下代码:
from fastapi import FastAPI, Form
app = FastAPI()
@app.post("/login")
async def login(username: str = Form(...), password: str = Form(...)):
if username == "admin" and password == "password":
return {"message": "Login successful"}
else:
return {"message": "Login failed"}
在上面的代码中,我们定义了一个login路由,该路由使用POST方法,接受两个表单数据,即用户名和密码。在这里,我们使用了Form()函数来解析并验证这两个表单字段。它期望两个字段都必须存在,并且必须是字符串类型。
如果用户名和密码与预期的值匹配,我们返回一个成功的登录消息;否则,返回登录失败的消息。
现在,我们可以使用uvicorn启动FastAPI应用:
uvicorn main:app --reload
启动后,我们可以通过访问http://localhost:8000/login来测试登录功能。你可以使用Postman或cURL工具来发送POST请求并传递用户名和密码参数,也可以通过HTML表单进行测试。
下面是一个使用HTML表单来测试的例子:
<!DOCTYPE html>
<html>
<head>
<title>Login Form</title>
</head>
<body>
<h1>Login Form</h1>
<form action="http://localhost:8000/login" method="POST">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
在上面的HTML代码中,我们定义了一个包含用户名和密码输入框的表单,并通过action属性指定了登录路由的URL。当用户点击登录按钮时,表单数据将被提交到/login路由,并由FastAPI应用进行处理。
这样,我们就实现了使用FastAPI和Form()函数进行表单数据处理和输入验证的功能。通过这种方式,我们可以轻松地处理和验证各种表单数据,确保数据的正确性和安全性。
