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 详细教程
  • 相关阅读:
    新的知识点
    知识点
    9.14知识点
    列表内容
    css的背景和边框
    css的text和font
    css
    js 第一天
    浏览器的差距
    布局
  • 原文地址:https://www.cnblogs.com/poloyy/p/15311533.html
Copyright © 2011-2022 走看看