Flask请求request

Flask中的request是一个公共变量,需要导入request

from flask import Flask,request

接收url中的参数

复制代码
@app.route("/req")
def req():
    print(request.method) #获取访问方式 GET
    print(request.url) #获取url http://127.0.0.1:5000/req?id=1&name=wl
    print(request.cookies) #获取cookies {}
    print(request.path)  # 获取访问路径 /req
    print(request.args) #获取url传过来的值  ImmutableMultiDict([('id', '1'), ('name', 'wl')])
    print(request.args.get("id")) #get获取id  1
    print(request.args["name"]) # 索引获取name wl
    print(request.args.to_dict()) # 获取到一个字典 {'id': '1', 'name': 'wl'}

    return "Hello"
复制代码

接收form中的参数

前端代码

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <input type="text" name="username">
    <input type="password" name="pwd">
    <input type="submit" value="登陆">
</form>
</body>
</html>
复制代码

后端接收到的参数

@app.route("/login",methods=["POST","GET"])
def login():
    print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
    print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'}
    return render_template("login.html")

接收文件

 request.files :接收文件

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="username">
    <br>
    <input type="password" name="pwd">
    <br>
    <input type="file" name="my_file">
    <br>
    <input type="submit" value="登陆">
</form>
</body>
</html>
复制代码

上传文件并保存

复制代码
@app.route("/login", methods=["POST", "GET"])
def login():
    # print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
    # print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'}

    my_file = request.files.get("my_file")  # 格式 ImmutableMultiDict([('my_file', <FileStorage: 'Chrysanthemum.jpg' ('image/jpeg')>)])
    file_path = os.path.join("static", "1.jpg")
    my_file.save(file_path)

    return render_template("login.html")
复制代码

json data values

@app.route("/login", methods=["POST", "GET"])
def login():
   
    print(request.data) # 存放的是请求体中的原始信息 Content-Type:无法识别的类型
    print(request.json) # 请求头中存在 Content-Type:application/json 将请求体中的数据 存放在JSON中
    print(request.values) # CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([('username', '123'), ('pwd', '123'), ('my_file', '')])])
    print(request.values.to_dict()) # 这是个坑!!!{'username': '123', 'pwd': '123', 'my_file': ''}
    return render_template("login.html")

 

posted @   答&案  阅读(9095)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示