[flask]http请求//获取请求体数据

python 复制代码
import json

from flask import Flask, request

app = Flask(__name__)

@app.route("/form1", methods=["post"])
def form1():
    """
    获取客户端请求的请求体[表单]
    :return:
    """
    """
    获取表单数据
    请求url:
    """
    """获取表单数据[不包含上传文件]"""
    #print(request.form)
    # # ImmutableMultiDict([('username', 'root'), ('password', '123456'), ('fav', 'swimming'), ('fav', 'watch TV')])
    # # 获取表单项数据[单个值]
    #print(request.form.get("username")) # root
    # # 获取表单项数据[多个值]
    #print(request.form.getlist("fav"))  # ['swimming', 'watch TV']


    """获取表单数据的上传文件"""
    #print(request.form.get("username"))
    # # 获取所有上传文件
    #print(request.files)  # ImmutableMultiDict([('avatar', <FileStorage: 's.png' ('image/png')>)])
    # # 根据name值获取单个上传文件
    #print(request.files.get("pt"))  # <FileStorage: 's.png' ('image/png')>
    # # 根据name值获取多个上传文件
    #print(request.files.getlist("pt"))  # [<FileStorage: 'a.png' ('image/png')>, <FileStorage: 's.png' ('image/png')>]

    return "hello, flask"


@app.route("/data", methods=["post"])
def data():
    """
    获取客户端请求的请求体[ajax]
    :return:
    """
    """判断本次客户端是否是ajax请求获取本次客户端提交的数据格式是否是json"""
    print(request.is_json)

    """获取客户端请求体中的json数据"""
    print(request.json)  # {'username': 'root', 'password': '123456'}

    """获取客户端请求体的原始数据"""
    print(request.data)  # b'{\n  "username": "root",\n  "password": "123456"\n}'
    # 原始数据转json格式
    print(json.loads(request.data))  # {'username': 'root', 'password': '123456'}

    """接收其他格式类型的数据"""
    # print(request.data)

    return "hello, flask"


@app.route("/file", methods=["post", "put", "patch"])
def file():
    """
    接收上传文件并保存文件
    :return:
    """
    pt = request.files.get("pt")
    print(pt)
    # 调用FileStorage提供的save方法就可以保存文件了
    pt.save("./avatar.png")
    #文件会保存在代码路径下
    return "hello, flask"


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)

表单数据上传/不包含文件

表单数据上传/包含文件

左边目录可看到多了一个文件

客户端请求体数据// 右边的数据类型记得设置为json

相关推荐
用户83562907805139 分钟前
使用 Python 在 Excel 中插入 OLE 对象
后端·python
one3121 小时前
高精度MEMS电容式倾角传感器:原理、结构与Python三维可视化
开发语言·python
深蓝海拓2 小时前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(七)创建适合HMI项目的数字输入/显示类部件
python
典典分享指南2 小时前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
MartinYeung52 小时前
[论文学习]MPIB:医疗提示注入基准——针对LLM临床安全性的系统性评估
人工智能·python·学习
用户8356290780512 小时前
使用 Python 为 PowerPoint 演示文稿添加评论
后端·python
阿图灵3 小时前
OpenCV 绘图五件套:画圆、文本、线段、矩形与椭圆
图像处理·人工智能·python·opencv·计算机视觉·绘图
web行路人3 小时前
AI全栈之旅 · 第一周总结
python
slacker-kian3 小时前
HuggingFace API加载模型超时:用 ModelScopeAPI 替代
人工智能·python·transformer·huggingface·blip·modelscope·blipprocessor