[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

相关推荐
荣码1 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
用户83562907805117 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
Goodbye2 天前
大模型无状态架构:从 HTTP 协议到 Harness AI 工程的深度解析
http
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot3 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海3 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程