创新互联FastAPI教程:FastAPI教程请求表单与文件

FastAPI 支持同时使用 File 和 Form 定义文件和表单字段。

“只有客户发展了,才有我们的生存与发展!”这是创新互联公司的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对网站设计、网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

说明

接收上传文件或表单数据,要预先安装 python-multipart。

例如,pip install python-multipart。

导入 File 与 Form

from fastapi import FastAPI, File, Form, UploadFile

app = FastAPI()


@app.post("/files/")
async def create_file(
    file: bytes = File(...), fileb: UploadFile = File(...), token: str = Form(...)
):
    return {
        "file_size": len(file),
        "token": token,
        "fileb_content_type": fileb.content_type,
    }

定义 File 与 Form 参数

创建文件和表单参数的方式与 Body 和 Query 一样:

from fastapi import FastAPI, File, Form, UploadFile

app = FastAPI()


@app.post("/files/")
async def create_file(
    file: bytes = File(...), fileb: UploadFile = File(...), token: str = Form(...)
):
    return {
        "file_size": len(file),
        "token": token,
        "fileb_content_type": fileb.content_type,
    }

文件和表单字段作为表单数据上传与接收。

声明文件可以使用 bytes 或 UploadFile 。

警告

可在一个路径操作中声明多个 File 与 Form 参数,但不能同时声明要接收 JSON 的 Body 字段。因为此时请求体的编码为 multipart/form-data,不是 application/json。

这不是 FastAPI 的问题,而是 HTTP 协议的规定。

小结

在同一个请求中接收数据和文件时,应同时使用 File 和 Form。

本文题目:创新互联FastAPI教程:FastAPI教程请求表单与文件
转载来源:http://www.mswzjz.cn/qtweb/news0/273750.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能