[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

相关推荐
数据小爬虫@11 分钟前
利用Python爬虫获取淘宝商品评论:实战案例分析
开发语言·爬虫·python
逝去的紫枫18 分钟前
Python PIL:探索图像处理的无限可能
图像处理·人工智能·python
梦幻精灵_cq24 分钟前
Python中“暂停”(time.sleep?input?)
python
摇滚侠33 分钟前
java http body的格式 ‌application/x-www-form-urlencoded‌不支持文件上传
java·开发语言·http
张小小大智慧36 分钟前
HTTP 协议应用场景
网络·网络协议·http
安晴晚风38 分钟前
HTTP有哪些风险?是怎么解决的?
网络·网络协议·http
小黄编程快乐屋40 分钟前
深入理解 HTTP 请求头与请求体
网络·网络协议·http
刀客12342 分钟前
http/https
网络协议·http·https
檀越剑指大厂43 分钟前
【Python系列】 Base64 编码:使用`base64`模块
开发语言·python