zoukankan      html  css  js  c++  java
  • FastAPI(23)- 详解 Form,发送表单数据

    前言

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

    安装 python-multipart

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

    pip install python-multipart

    Form

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

    简单的栗子

    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 

    正确传参的请求结果

    请求头

    查看 Swagger API 文档

    • 可以看到接口文档中,接口的 Content-type 默认也是 application/x-www-form-urlencoded 
    • 注意:在 Swagger 上无法测试上传文件,因为 Content-type 无法切换到  multipart/form-data ,如果需要测试,要用 FastAPI 提供的 File 哦
    • File 详细教程
  • 相关阅读:
    Ubuntu下多版本软件的管理
    关于高考
    Openca安装笔记
    Nginx+uwsgi+python配置
    cpabe的安装
    线形同余法求随机数
    world wind 之 applet 篇
    0909 海贼王我当定了
    实验0:了解和熟悉操作系统
    0316复利计算器3.0
  • 原文地址:https://www.cnblogs.com/poloyy/p/15311533.html
Copyright © 2011-2022 走看看