FastAPI(23)- 详解 Form,发送表单数据

简介: FastAPI(23)- 详解 Form,发送表单数据

前言


  • form-data 表单格式的请求数据其实也是挺常见的
  • FastAPI 通过 Form 来声明参数需要接收表单数据

 

安装 python-multipart


要用 Form,需要先安装这个库

pip install python-multipart

 

Form


Form 是继承自 Body,所以可以定义和 Body 相同的元数据以及额外的验证

image.png

简单的栗子


import uvicorn
from fastapi import FastAPI, Form
app = FastAPI()
@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username, "password": password}
if __name__ == "__main__":
    uvicorn.run(app="10_Form:app", host="127.0.0.1", port=8080, reload=True, debug=True)


在 OAuth2 规范的一种使用方式(密码流)中,需要将用户名、密码作为表单字段发送,而不是 JSON【后面会详解 OAuth2】

 

重点

  • 请求发送表单格式的数据,请求头通常会包含 Content-Type: application/x-www-form-urlencoded
  • 如果需要发送包含文件的表单数据, 会变成 Content-Type: multipart/form-data

 

正确传参的请求结果

image.png


请求头

image.png

查看 Swagger API 文档

image.png

  • 可以看到接口文档中,接口的 Content-type 默认也是 application/x-www-form-urlencoded
  • 注意:在 Swagger 上无法测试上传文件,因为 Content-type 无法切换到  multipart/form-data ,如果需要测试,要用 FastAPI 提供的 File 哦
  • File 详细教程

 

相关文章
|
3月前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
154 1
|
3月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
232 1
|
3月前
|
API Python
Python FastAPI 获取 Neo4j 数据
Python FastAPI 获取 Neo4j 数据
36 0
|
6月前
|
JSON API 数据安全/隐私保护
如何使用Fastapi上传文件?先从请求体数据讲起
如何使用Fastapi上传文件?先从请求体数据讲起
188 2
|
前端开发 数据安全/隐私保护
FastApi-12-Form表单
FastApi-12-Form表单
221 0
|
JSON 数据格式 Python
FastAPI(45)- 返回响应数据的五种常见方式
FastAPI(45)- 返回响应数据的五种常见方式
1118 0
FastAPI(45)- 返回响应数据的五种常见方式
FastAPI(15)- 声明请求示例数据(下)
FastAPI(15)- 声明请求示例数据(下)
213 0
FastAPI(15)- 声明请求示例数据(下)
|
JSON API 数据格式
FastAPI(15)- 声明请求示例数据(上)
FastAPI(15)- 声明请求示例数据(上)
209 0
FastAPI(15)- 声明请求示例数据(上)
|
存储 开发框架 JSON
FastAPI 学习之路(二十一)请求体 - 更新数据
FastAPI 学习之路(二十一)请求体 - 更新数据
FastAPI 学习之路(二十一)请求体 - 更新数据
|
开发框架 JSON 数据格式
FastAPI 学习之路(十八)表单与文件
FastAPI 学习之路(十八)表单与文件
FastAPI 学习之路(十八)表单与文件