使用Python的FastAPI和Form()函数实现表单处理和验证
FastAPI是一个基于Python的高性能Web框架,它提供了快速且简单的方式来构建Web应用程序。Form()函数是FastAPI提供的一个功能强大的表单处理和验证工具。下面我们将使用FastAPI和Form()函数来展示一个简单的表单处理和验证的例子。
首先,我们需要安装FastAPI和uvicorn:
pip install fastapi pip install uvicorn
接下来,创建一个名为main.py的Python文件,并编写以下代码:
from fastapi import FastAPI, Form
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/")
def home():
return HTMLResponse("""
<html>
<body>
<form method="POST" action="/process_form">
<input type="text" name="username" placeholder="Enter your username" required>
<br>
<input type="password" name="password" placeholder="Enter your password" required>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
""")
@app.post("/process_form")
def process_form(username: str = Form(...), password: str = Form(...)):
if username == "admin" and password == "password":
return {"message": "Login successful!"}
else:
return {"message": "Invalid username or password"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
在上面的代码中,我们定义了一个FastAPI应用程序,并创建了一个路由函数home(),该函数返回一个包含用户名和密码输入框的HTML表单。我们使用Form()函数来声明username和password参数,并指定了参数的类型为str。Form()函数还可以接受一些验证规则,例如min_length、max_length、regex等等。
在路由函数process_form()中,我们通过注解的方式将Form()函数声明的参数传入,并使用了...表示这些参数是必需的。在函数体中,我们对用户名和密码进行简单的验证,如果输入的用户名和密码为"admin"和"password",则返回登录成功的消息,否则返回用户名或密码无效的消息。
最后,我们通过运行uvicorn.run()来启动FastAPI应用程序。运行以下命令启动应用:
uvicorn main:app --reload
现在,我们可以在浏览器中访问http://localhost:8000来查看我们的表单。输入"admin"作为用户名和"password"作为密码,并点击提交按钮,应该会看到一个登录成功的消息。
这只是一个非常简单的例子,FastAPI和Form()函数提供了更多可用的选项来实现更复杂的表单验证和处理逻辑。你可以使用min_length、max_length等参数来验证输入的长度,也可以使用正则表达式来验证特定的格式要求。另外,FastAPI还提供了Pydantic模型的支持,你可以使用Pydantic模型来定义更复杂的表单结构和验证规则。
总结起来,FastAPI和Form()函数提供了一个快速而简洁的方式来处理和验证表单。它使得构建Web应用程序变得简单而高效,同时提供了强大的验证功能来确保输入的数据符合预期。
