最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

flask的生命周期

整個(gè)htpp請(qǐng)求在flask框架中的流程如下:

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

在這里插入圖片描述

request請(qǐng)求對(duì)象

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

  • request:flask中代表當(dāng)前請(qǐng)求的 request 對(duì)象
  • 作用:在視圖函數(shù)中取出本次客戶端的請(qǐng)求數(shù)據(jù)
  • 導(dǎo)入:from flask import request
  • 源代碼位置:
  • 代理類(lèi) from flask.app import Request —> from flask.globals.Request
  • 源碼類(lèi):from flask.wrappers.Request
  • 基類(lèi):from werkzeug.wrappers import Request as RequestBase

request,常用的屬性如下:

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

在這里插入圖片描述

獲取請(qǐng)求中各項(xiàng)數(shù)據(jù)

from flask import Flask, request
# 項(xiàng)目實(shí)例應(yīng)用對(duì)象
app = Flask(__name__)

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


# 在http的常用請(qǐng)求方法中,delete和get是沒(méi)有請(qǐng)求體的?。。?


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


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

瀏覽器訪問(wèn),終端打印request對(duì)象

在這里插入圖片描述

單個(gè)參數(shù)值獲取

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

from flask import Flask, request
# 項(xiàng)目實(shí)例應(yīng)用對(duì)象
app = Flask(__name__)

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


# 在http的常用請(qǐng)求方法中,delete和get是沒(méi)有請(qǐng)求體的!??!


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

    # # 針對(duì)原始的查詢字符串參數(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')])

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


    # """
    # 請(qǐng)求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)

瀏覽器請(qǐng)求:

在這里插入圖片描述

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

在這里插入圖片描述

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

需要導(dǎo)包:

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

注意,得到的字典值是列表類(lèi)型

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

多個(gè)參數(shù)值獲取

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

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

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

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

瀏覽器請(qǐng)求:

在這里插入圖片描述

終端打印

在這里插入圖片描述

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

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

# 項(xiàng)目實(shí)例應(yīng)用對(duì)象
app = Flask(__name__)

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


# 在http的常用請(qǐng)求方法中,delete和get是沒(méi)有請(qǐng)求體的?。?!


@app.route(rule="/qs")
def index():
    """
    獲取客戶端請(qǐng)求的查詢字符串參數(shù)
    :return:
    """
    """
    請(qǐng)求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)



    # # 針對(duì)原始的查詢字符串參數(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')])

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


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

    print(request.args)
    print(request.args["user"]) # 'xiaoming'
    #通過(guò)字典鍵的方式獲取多參數(shù)值,只能獲取第一個(gè)
    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ù)的獲取方式的詳細(xì)內(nèi)容,更多關(guān)于python flask查詢參數(shù)獲取的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中unittest用法實(shí)例

    Python中unittest用法實(shí)例

    這篇文章主要介紹了Python中unittest用法,較為詳細(xì)的講述了unittest中相關(guān)函數(shù)的用法及完整實(shí)例,需要的朋友可以參考下
    2014-09-09
  • Python實(shí)現(xiàn)外星人去哪了小游戲詳細(xì)代碼

    Python實(shí)現(xiàn)外星人去哪了小游戲詳細(xì)代碼

    今天為大家?guī)?lái)一款小游戲,名叫外星人去哪了,用Python語(yǔ)言實(shí)現(xiàn)完成,代碼簡(jiǎn)潔易懂,感興趣的小伙伴快來(lái)看看吧
    2022-03-03
  • python能做哪些生活有趣的事情

    python能做哪些生活有趣的事情

    在本篇文章里小編給各位分享了關(guān)于python能做的生活有趣的事情,有興趣的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python使用期物處理并發(fā)教程

    python使用期物處理并發(fā)教程

    這篇文章主要為大家介紹了python使用期物處理并發(fā)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • python時(shí)間time模塊處理大全

    python時(shí)間time模塊處理大全

    這篇文章主要給大家介紹了關(guān)于python時(shí)間time模塊處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python?tkinter中的Frame控件用法詳解

    python?tkinter中的Frame控件用法詳解

    Tkinter中的Frame控件是一個(gè)用于組織和管理其他控件的容器,它可以將其他控件放置在自己內(nèi)部,用于創(chuàng)建更復(fù)雜的用戶界面,要?jiǎng)?chuàng)建一個(gè)Frame控件,可以使用Tkinter的Frame類(lèi),所以本文就通過(guò)一個(gè)簡(jiǎn)單的示例給大家介紹一下
    2023-08-08
  • python中opencv?Canny邊緣檢測(cè)

    python中opencv?Canny邊緣檢測(cè)

    這篇文章主要介紹了python中opencv?Canny邊緣檢測(cè),Canny邊緣檢測(cè)是一種使用多級(jí)邊緣檢測(cè)算法檢測(cè)邊緣的方法。OpenCV提供了函數(shù)cv2.Canny()實(shí)現(xiàn)Canny邊緣檢測(cè)。更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn)

    scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn)

    這篇文章主要介紹了scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python解析toml配置文件的方法分享

    Python解析toml配置文件的方法分享

    在開(kāi)發(fā)過(guò)程中,配置文件是少不了的,而且配置文件是有專(zhuān)門(mén)的格式的,比如:ini,yaml,toml等等。本文帶大家來(lái)看看Python如何解析toml文件,需要的可以參考一下
    2022-09-09

最新評(píng)論

电白县| 梁河县| 麻城市| 尼勒克县| 南城县| 南川市| 台江县| 东乡| 正镶白旗| 郧西县| 利川市| 义马市| 临邑县| 麟游县| 田阳县| 临沂市| 高青县| 嘉荫县| 涞源县| 鄂温| 陕西省| 萨迦县| 从化市| 明水县| 泊头市| 金川县| 双鸭山市| 宁蒗| 灵石县| 黄冈市| 天气| 神农架林区| 临猗县| 留坝县| 安溪县| 赤峰市| 凤山县| 泽普县| 松溪县| 吉隆县| 和静县|