[falsk]http请求//获取查询字符串

API — Flask Documentation (2.0.x) (palletsprojects.com)

  • request:flask中代表当前请求的 request 对象
  • 作用:在视图函数中取出本次客户端的请求数据
  • 导入from flask import request
  • 代码位置
  • ​ 代理类 from flask.app import Request ---> from flask.globals.Request
  • ​ 源码类:from flask.wrappers.Request
  • ​ 基类:from werkzeug.wrappers import Request as RequestBase

request常用属性

属性 说明 类型
data 记录请求体的数据,并转换为字符串
只要是通过其他属性无法识别转换的请求体数据
最终都是保留到data属性中
bytes类型
form 记录请求中的html表单数据 ImmutableMultiDict
args 记录请求中的查询字符串,也可以是query_string ImmutableMultiDict
cookies 记录请求中的cookie信息 Dict
headers 记录请求中的请求头 ImmutableMultiDict
method 记录请求使用的HTTP方法 GET/POST
url 记录请求的URL地址 string
files 记录请求上传的文件列表 ImmutableMultiDict
json 记录ajax请求的json数据 Dict
from flask import Flask, request
from urllib.parse import parse_qs


app = Flask(__name__)


@app.route("/qs")
def qs():
    """
    获取客户端请求的查询字符串参数
    :return:
    """
    """
    请求url:http://127.0.0.1:5000/qs?user=xiaoming&age=16
    """
    # 获取原始的查询字符串参数,格式:bytes
    print(request.query_string)
    # b'user=xiaoming&age=16'

    # # 针对原始的查询字符串参数,转换成字典格式
    query_string = parse_qs(request.query_string.decode())
    print(query_string)  # {'user': ['xiaoming'], 'age': ['16']}

    # # 获取参数值
    # print(query_string["user"][0])

    # # 获取查询字符串参数,格式:ImmutableMultiDict
    #request.args   这个方法会原封不动地接收参数,会将数据一个个打印出来
    # print(request.args)
    # # ImmutableMultiDict([('user', 'xiaoming'), ('age', '16')])

    """
    请求url:http://127.0.0.1:5000/qs?user=xiaoming&fav=shopping&fav=coding&fav=rap
    """
    # # 获取单个参数值
    print(request.args["user"]) # 'xiaoming'
    print(request.args.get("user"))  # 'xiaoming'
    #上面两个方法的区别在于,如果user不存在,使用第一种方法会报错,但是第二种不会
    print(request.args["fav"])  # 'shopping'
    #上面的方法都是只能获取一个参数值,如果想要获取多个参数值,就加上gatlist,这样子输出的是一个列表的形式
    print(request.args.getlist("fav"))  # ['shopping', 'coding', 'rap']

    return "hello, flask"


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

相关推荐

  1. SpringMVC:获取请求数据

    2024-03-24 06:00:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 06:00:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 06:00:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 06:00:04       82 阅读
  4. Python语言-面向对象

    2024-03-24 06:00:04       91 阅读

热门阅读

  1. 数据库处理函数

    2024-03-24 06:00:04       33 阅读
  2. Python编程异步爬虫——协程的基本原理

    2024-03-24 06:00:04       35 阅读
  3. Scala第十一章节(正则表达式和异常处理)

    2024-03-24 06:00:04       36 阅读
  4. Python XML 解析

    2024-03-24 06:00:04       40 阅读
  5. 特种兵旅游-扬州、南京

    2024-03-24 06:00:04       37 阅读
  6. vue3之声明式和编程式导航

    2024-03-24 06:00:04       44 阅读
  7. 5.83 BCC工具之tcplife.py解读

    2024-03-24 06:00:04       38 阅读
  8. creator-webview与Android交互

    2024-03-24 06:00:04       29 阅读