python:Fastapi - 请求表单与文件

简单絮叨下,如有问题请私信

上篇文章主要唠了接口响应的一些东西,今天主要是唠Form表单和文件处理。表单可以理解为数据采集,而文件处理就是在获得客户端的文件进行数据返回或者直接上传服务器。

fastapi框架中提供了操作表单的Form和处理文件的File,其参数的方式与 BodyQuery一样。



表单数据

From它接收的不是json,而是表单字段,使用表单需要安装pip install python-multipart(Python 的流式多部分解析器)

from fastapi import Form
from fastapi import FastAPI


app = FastAPI()


@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
    if password == "123456":
        return {"username": username}
    else:
        return "密码或账号不正确..."

注释信息:

  • usernampassword是定义了Form表单
  • 如果password不等于字符串类型的123456,就抛出提示信息,相反就是返回用户名
  • 可在一个路径操作中声明多个 Form 参数
  • 表单数据的「媒体类型」编码一般为 application/x-www-form-urlencoded

启动服务:

PS E:\git_code\python-code\fastapiProject> uvicorn form_main:app --reload

请求接口:

POST http://127.0.0.1:8000/login/

请求参数:

  • 所以在postman中的body-选择form-datax-www-form-urlencoded进行传参
KEY VALUE
username zhangsan
password 123456

请求结果:

{
    "username": "zhangsan"
}


请求文件

文件上传也是以表单的形式发送的,它默认的媒体类型编码一般为 application/form-data

因为是以表单的形式发送数据,固要安装pip install python-multipart(Python 的流式多部分解析器)

文件上传分为两种形式,首先是直接File,其次是UploadFile,它俩的区别就是UploadFile是处理大数据,相反的就是适用于小型文件

from fastapi import File
from fastapi import FastAPI
from fastapi import UploadFile


app = FastAPI()


@app.post("/file/")
async def create_file(file: bytes= File(...)):
    """
    直接定义`File`参数
    :param file:
    :return:
    """
    return {"file": file}


@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    "&
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值