欢迎访问宙启技术站
智能推送

使用Python的FastAPI和Form()函数实现表单数据处理和输入验证

发布时间:2023-12-15 23:06:42

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()函数进行表单数据处理和输入验证的功能。通过这种方式,我们可以轻松地处理和验证各种表单数据,确保数据的正确性和安全性。