FastAPI系列(08):form表单数据
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/19503695
form表单数据
Form组件是fastapi里的
FastAPI可以使用Form组件来接收表单数据,需要先使用pip install python-multipart命令进行安装
安装:pip install python-multipart
示例
from fastapi import FastAPI,Form
import uvicorn
app = FastAPI()
@app.post("/login")
async def login(username: str = Form(), password: str = Form()): # username是一个Form对象
print(f"username: {username}, password:{password}")
# 注册,实现数据库的添加操作
return {
"msg": f"{username}登录成功"
}
if __name__ == '__main__':
uvicorn.run("form_parameter:app", port=8001, reload=True)
接口文档

请求参数

响应结果


添加约束
from fastapi import FastAPI,Form
import uvicorn
app = FastAPI()
@app.post("/login")
async def login(username: str = Form(..., pattern=r"^[A-Za-z][A-Za-z0-9]{2,4}$", min_length=3, max_length=5),
# 第一个参数:默认值或 ...(表示必需),在 FastAPI 中,... 是 Python 内置的 Ellipsis 对象,在表单参数中表示必需参数
password: str = Form()): # username是一个Form对象
print(f"username: {username}, password:{password}")
# 注册,实现数据库的添加操作
return {
"msg": f"{username}登录成功"
}
if __name__ == '__main__':
uvicorn.run("form_parameter:app", port=8001, reload=True)
接口文档

给密码设置默认值123456
from fastapi import FastAPI,Form
import uvicorn
app = FastAPI()
@app.post("/login") # username和password都是一个Form对象
async def login(username: str = Form(..., pattern=r"^[A-Za-z][A-Za-z0-9]{2,4}$", min_length=3, max_length=5),
# 第一个参数:默认值或 ...(表示必需),在 FastAPI 中,... 是 Python 内置的 Ellipsis 对象,在表单参数中表示必需参数
password: str = Form("123456")): # 设置默认值为 "123456"
print(f"username: {username}, password:{password}")
# 注册,实现数据库的添加操作
return {
"msg": f"{username}登录成功"
}
if __name__ == '__main__':
uvicorn.run("form_parameter:app", port=8001, reload=True)
接口文档

点击

显示了默认密码,username也根据正则生成了值

__EOF__
本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号