亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python?flask框架中多種查詢參數(shù)的獲取方式

 更新時間:2024年03月19日 09:15:44   作者:景天科技苑  
這篇文章主要介紹了pythonflask框架的生命周期以及多種查詢參數(shù)的獲取方式,文章通過代碼示例和圖文講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

flask的生命周期

整個htpp請求在flask框架中的流程如下:

客戶端—>wsgi應(yīng)用程序->全局鉤子–> 路由 --> 視圖 --> 路由—> 全局鉤子 —> wsgi應(yīng)用程序—> 客戶端

在這里插入圖片描述

request請求對象

文檔: https://flask.palletsprojects.com/en/2.0.x/api/#flask.Request

  • request:flask中代表當前請求的 request 對象
  • 作用:在視圖函數(shù)中取出本次客戶端的請求數(shù)據(jù)
  • 導(dǎo)入: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,常用的屬性如下:

注意,request對象要在視圖函數(shù)里面使用

在這里插入圖片描述

獲取請求中各項數(shù)據(jù)

from flask import Flask, request
# 項目實例應(yīng)用對象
app = Flask(__name__)

# 加載配置
app.config.update({
    "DEBUG": True
})


# 在http的常用請求方法中,delete和get是沒有請求體的!?。?


@app.route(rule="/")
def index():
    """獲取請求體"""
    print(request)
    return 'hello flask'


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

瀏覽器訪問,終端打印request對象

在這里插入圖片描述

單個參數(shù)值獲取

url中每個查詢參數(shù)只有一個值的情況:

from flask import Flask, request
# 項目實例應(yīng)用對象
app = Flask(__name__)

# 加載配置
app.config.update({
    "DEBUG": True
})


# 在http的常用請求方法中,delete和get是沒有請求體的!??!


@app.route(rule="/qs")
def index():
    """
    獲取客戶端請求的查詢字符串參數(shù)
    :return:
    """
    """
    請求url:http://127.0.0.1:5000/qs?user=xiaoming&age=16
    """
    # 獲取原始的查詢字符串參數(shù),格式:bytes
    print(request.query_string)
    # b'user=xiaoming&age=16'

    # # 針對原始的查詢字符串參數(shù),轉(zhuǎn)換成字典格式
    # query_string = parse_qs(request.query_string.decode())
    # print(query_string)  # {'user': ['xiaoming'], 'age': ['16']}

    # # 獲取參數(shù)值
    # print(query_string["user"][0])


    # # 獲取查詢字符串參數(shù),格式:ImmutableMultiDict
    # print(request.args)
    # # ImmutableMultiDict([('user', 'xiaoming'), ('age', '16')])

    # # 獲取單個參數(shù)值
    # print(request.args["user"])
    # print(request.args["age"])
    # print(request.args.get("age"))


    # """
    # 請求url:http://127.0.0.1:5000/qs?user=xiaoming&fav=shopping&fav=coding&fav=rap
    # """
    # # print(request.args["user"]) # 'xiaoming'
    # # print(request.args["fav"])  # 'shopping'
    # # print(request.args.get("user")) # 'xiaoming'
    #
    # print(request.args.getlist("fav"))  # ['shopping', 'coding', 'rap']
    #
    return "hello, flask"


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

瀏覽器請求:

在這里插入圖片描述

request.query_string 查詢參數(shù),是byte類型數(shù)據(jù)

在這里插入圖片描述

針對原始的查詢字符串參數(shù),默認是byte類型,我們可以將其轉(zhuǎn)換成字典格式

需要導(dǎo)包:

from urllib.parse import parse_qs
    # # 針對原始的查詢字符串參數(shù),轉(zhuǎn)換成字典格式
    query_string = parse_qs(request.query_string.decode())
    print(query_string)  # {'user': ['xiaoming'], 'age': ['16']}

注意,得到的字典值是列表類型

在這里插入圖片描述

# # 獲取參數(shù)值
print(query_string["user"][0])

在這里插入圖片描述

request.args是ImmutableMultiDict類型數(shù)據(jù)

在這里插入圖片描述

# # 獲取單個參數(shù)值
print(request.args["user"])
print(request.args["age"])
print(request.args.get("age"))

在這里插入圖片描述

多個參數(shù)值獲取

url中查詢參數(shù)有多個值的情況:

#多個參數(shù)值獲取
# """
# 請求url:http://127.0.0.1:5000/qs?user=xiaoming&fav=shopping&fav=coding&fav=rap
# """

print(request.args)
print(request.args["user"]) # 'xiaoming'
#通過字典鍵的方式獲取多參數(shù)值,只能獲取第一個
print(request.args["fav"])  # 'shopping'
print(request.args.get("user")) # 'xiaoming'

#使用getlist()方式,可以獲取全部
print(request.args.getlist("fav"))  # ['shopping', 'coding', 'rap']

瀏覽器請求:

在這里插入圖片描述

終端打印

在這里插入圖片描述

完整獲取查詢參數(shù)代碼

from flask import Flask, request
from urllib.parse import parse_qs

# 項目實例應(yīng)用對象
app = Flask(__name__)

# 加載配置
app.config.update({
    "DEBUG": True
})


# 在http的常用請求方法中,delete和get是沒有請求體的!??!


@app.route(rule="/qs")
def index():
    """
    獲取客戶端請求的查詢字符串參數(shù)
    :return:
    """
    """
    請求url:http://127.0.0.1:5000/qs?user=xiaoming&age=16
    """
    # 獲取原始的查詢字符串參數(shù),格式:bytes
    # print(request.query_string)
    # b'user=xiaoming&age=16'

    # 獲取查詢字符串參數(shù),格式:ImmutableMultiDict
    # print(request.args)



    # # 針對原始的查詢字符串參數(shù),轉(zhuǎn)換成字典格式
    # query_string = parse_qs(request.query_string.decode())
    # print(query_string)  # {'user': ['xiaoming'], 'age': ['16']}




    # # 獲取參數(shù)值
    # print(query_string["user"][0])


    # # 獲取查詢字符串參數(shù),格式:ImmutableMultiDict
    # print(request.args)
    # # ImmutableMultiDict([('user', 'xiaoming'), ('age', '16')])

    # # 獲取單個參數(shù)值
    # print(request.args["user"])
    # print(request.args["age"])
    # print(request.args.get("age"))


    #多個參數(shù)值獲取
    # """
    # 請求url:http://127.0.0.1:5000/qs?user=xiaoming&fav=shopping&fav=coding&fav=rap
    # """

    print(request.args)
    print(request.args["user"]) # 'xiaoming'
    #通過字典鍵的方式獲取多參數(shù)值,只能獲取第一個
    print(request.args["fav"])  # 'shopping'
    print(request.args.get("user")) # 'xiaoming'

    #使用getlist()方式,可以獲取全部
    print(request.args.getlist("fav"))  # ['shopping', 'coding', 'rap']

    return "hello, flask"


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

總結(jié):以上就是python flask框架中多種查詢參數(shù)的獲取方式的詳細內(nèi)容,更多關(guān)于python flask查詢參數(shù)獲取的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • DataFrame窗口函數(shù)rolling()的用法

    DataFrame窗口函數(shù)rolling()的用法

    這篇文章主要介紹了DataFrame窗口函數(shù)rolling()的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中多繼承與菱形繼承問題的解決方案與實踐

    Python中多繼承與菱形繼承問題的解決方案與實踐

    在Python這個靈活且功能強大的編程語言中,多繼承是一個既強大又復(fù)雜的概念,它允許一個類繼承自多個父類,從而能夠復(fù)用多個父類的屬性和方法,本文將深入解釋Python中的多繼承概念,詳細剖析菱形繼承問題,并探討Python是如何解決這一難題的,需要的朋友可以參考下
    2024-07-07
  • 對Python中DataFrame選擇某列值為XX的行實例詳解

    對Python中DataFrame選擇某列值為XX的行實例詳解

    今天小編就為大家分享一篇對Python中DataFrame選擇某列值為XX的行實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 對python csv模塊配置分隔符和引用符詳解

    對python csv模塊配置分隔符和引用符詳解

    今天小編就為大家分享一篇對python csv模塊配置分隔符和引用符詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python的pytest測試框架使用詳解

    Python的pytest測試框架使用詳解

    這篇文章主要介紹了Python的pytest測試框架使用詳解,說到?pytest,大家總不免要拿來和?unittest?來比一下,但是?unittest?畢竟是標準庫,兼容性方面肯定沒得說,但要論簡潔和方便的話,pytest?也是不落下風(fēng)的,需要的朋友可以參考下
    2023-07-07
  • Python加密模塊的hashlib,hmac模塊使用解析

    Python加密模塊的hashlib,hmac模塊使用解析

    這篇文章主要介紹了Python加密模塊的hashlib,hmac模塊使用解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Django中和時區(qū)相關(guān)的安全問題詳解

    Django中和時區(qū)相關(guān)的安全問題詳解

    這篇文章主要給大家介紹了關(guān)于Django中和時區(qū)相關(guān)的安全問題的相關(guān)資料,需要的朋友可以參考下
    2020-10-10
  • 在jupyter notebook中使用pytorch的方法

    在jupyter notebook中使用pytorch的方法

    這篇文章主要介紹了在jupyter notebook中使用pytorch的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Python3自定義http/https請求攔截mitmproxy腳本實例

    Python3自定義http/https請求攔截mitmproxy腳本實例

    這篇文章主要介紹了Python3自定義http/https請求攔截mitmproxy腳本實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 使用python?xmlrpc連接odoo方式

    使用python?xmlrpc連接odoo方式

    這篇文章主要介紹了使用python?xmlrpc連接odoo方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論