欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flask請(qǐng)求參數(shù)獲取常用方式詳解

 更新時(shí)間:2025年06月19日 09:58:09   作者:盛夏綻放  
在Flask開發(fā)中,獲取請(qǐng)求參數(shù)是日常操作,但新手常常會(huì)混淆幾種獲取方式,本文將用生動(dòng)的方式講解這些方法,幫你徹底理清思路

一、參數(shù)獲取方式全景圖

先來(lái)看一個(gè)總覽表格,對(duì)比三種主要獲取方式:

獲取方式適用場(chǎng)景示例URL代碼示例
路由參數(shù) <int:aid>URL路徑中的變量部分/detail/123def detail(aid):
request.argsURL查詢字符串(?后面的鍵值對(duì))/publish?title=hellorequest.args.get('title')
request.formPOST表單提交的數(shù)據(jù)表單提交(無(wú)直接URL體現(xiàn))request.form.get('title')

二、詳細(xì)解析每種方式

1. 路由參數(shù):URL路徑中的變量

@app.route('/detail/<int:aid>')
def detail(aid):
    return f"文章ID是: {aid}"

識(shí)別特征:URL路徑中用< >包裹的部分

獲取方式:直接作為函數(shù)參數(shù)

示例:

  • 訪問(wèn)URL: /detail/42
  • 結(jié)果: aid自動(dòng)獲取值`42

2. URL查詢參數(shù)(request.args):?jiǎn)柼?hào)后的鍵值對(duì)

@app.route('/search')
def search():
    keyword = request.args.get('q')
    return f"搜索關(guān)鍵詞: {keyword}"

識(shí)別特征:URL中?后面的部分,形如key=value,多個(gè)參數(shù)用&連接

獲取方式:request.args.get('key')

示例:

訪問(wèn)URL: /search?q=flask&page=2

獲取:

  • q: “flask”
  • page: “2”
/search?q=flask&page=2
       ↑         ↑
       |         request.args.get('page') → "2"
       request.args.get('q') → "flask"

3. 表單數(shù)據(jù)(request.form):POST請(qǐng)求體

@app.route('/login', methods=['POST'])
def login():
    username = request.form.get('username')
    password = request.form.get('password')
    return f"用戶{username}登錄中..."

識(shí)別特征:通過(guò)<form>表單提交的數(shù)據(jù)

獲取方式:request.form.get('field_name')

示例表單:

<form action="/login" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <button>提交</button>
</form>

表單提交 → 請(qǐng)求體:

username=admin&password=123456
           ↓
request.form.get('username') → "admin"
request.form.get('password') → "123456"

三、常見混淆場(chǎng)景解析

混淆1:把路由參數(shù)當(dāng)成查詢參數(shù)獲取

錯(cuò)誤做法:

@app.route('/detail/<int:aid>')
def detail():
    aid = request.args.get('aid')  # 這樣獲取不到!

正確做法:

@app.route('/detail/<int:aid>')
def detail(aid):  # 直接從參數(shù)獲取
    return str(aid)

混淆2:用request.form獲取GET參數(shù)

錯(cuò)誤做法:

# 訪問(wèn)URL: /api?user=john
user = request.form.get('user')  # 返回None

正確做法:

user = request.args.get('user')  # 返回"john"

混淆3:用request.args獲取POST表單數(shù)據(jù)

錯(cuò)誤做法:

# 提交了一個(gè)登錄表單
username = request.args.get('username')  # 返回None

正確做法:

username = request.form.get('username')

四、記憶技巧

1.看URL結(jié)構(gòu):

  • /path/<variable> → 路由參數(shù) → 函數(shù)參數(shù)獲取
  • /path?key=value → 查詢參數(shù) → request.args
  • 表單提交 → request.form

2.HTTP方法聯(lián)想:

  • GET請(qǐng)求的參數(shù)通常在URL中 → request.args
  • POST請(qǐng)求的參數(shù)通常在請(qǐng)求體中 → request.form

3.開發(fā)時(shí)的小技巧:

print(request.args)  # 查看所有查詢參數(shù)
print(request.form)  # 查看所有表單數(shù)據(jù)

五、綜合示例

from flask import Flask, request

app = Flask(__name__)

# 路由參數(shù) + 查詢參數(shù)
@app.route('/user/<int:user_id>')
def user_profile(user_id):
    action = request.args.get('action', 'view')  # 帶默認(rèn)值
    return f"用戶{user_id}的個(gè)人資料,操作: {action}"

# 表單處理
@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form.get('username')
        email = request.form.get('email')
        return f"注冊(cè)成功: {username} ({email})"
    return '''
        <form method="post">
            用戶名: <input name="username"><br>
            郵箱: <input name="email"><br>
            <button>注冊(cè)</button>
        </form>
    '''

記?。河^察URL結(jié)構(gòu)是第一步,然后根據(jù)參數(shù)所在位置選擇正確的獲取方法。

到此這篇關(guān)于Flask請(qǐng)求參數(shù)獲取常用方式詳解的文章就介紹到這了,更多相關(guān)Flask獲取請(qǐng)求參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中random.shuffle()函數(shù)用法代碼案例

    Python中random.shuffle()函數(shù)用法代碼案例

    random.shuffle方法,對(duì)元素進(jìn)行重新排序,打亂原有的順序,返回一個(gè)隨機(jī)序列,該方法的作用類似洗牌,本文重點(diǎn)給大家介紹Python中random.shuffle()函數(shù)用法代碼案例,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • Python Flask前后端Ajax交互的方法示例

    Python Flask前后端Ajax交互的方法示例

    這篇文章主要介紹了Python Flask前后端Ajax交互的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python并查集Disjoint?Set的具體使用

    Python并查集Disjoint?Set的具體使用

    本文主要介紹了Python并查集Disjoint?Set的具體使用,包括并查集的基本概念、實(shí)現(xiàn)方式、路徑壓縮和應(yīng)用場(chǎng)景,并使用代碼示例演示并查集的操作,感興趣的可以了解一下
    2024-01-01
  • python venv和virtualenv模塊詳解

    python venv和virtualenv模塊詳解

    venv 是 Python 內(nèi)置標(biāo)準(zhǔn)庫(kù)中創(chuàng)建輕量級(jí)虛擬環(huán)境的工具,本文通過(guò)示例代碼介紹python venv和virtualenv的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Python實(shí)現(xiàn)購(gòu)物車程序

    Python實(shí)現(xiàn)購(gòu)物車程序

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)購(gòu)物車程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Django中URL視圖函數(shù)的一些高級(jí)概念介紹

    Django中URL視圖函數(shù)的一些高級(jí)概念介紹

    這篇文章主要介紹了Django中URL視圖函數(shù)的一些高級(jí)概念,Django是Python重多人氣框架中最為著名的一個(gè),需要的朋友可以參考下
    2015-07-07
  • Python基礎(chǔ)之變量的相關(guān)知識(shí)總結(jié)

    Python基礎(chǔ)之變量的相關(guān)知識(shí)總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python變量展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python一些基本的圖像操作和處理總結(jié)

    Python一些基本的圖像操作和處理總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python圖像操作和處理展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Django基礎(chǔ)知識(shí) URL路由系統(tǒng)詳解

    Django基礎(chǔ)知識(shí) URL路由系統(tǒng)詳解

    這篇文章主要介紹了Django基礎(chǔ)知識(shí) URL路由系統(tǒng)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python自動(dòng)創(chuàng)建Markdown表格使用實(shí)例探究

    Python自動(dòng)創(chuàng)建Markdown表格使用實(shí)例探究

    Markdown表格是文檔中整理和展示數(shù)據(jù)的重要方式之一,然而,手動(dòng)編寫大型表格可能會(huì)費(fèi)時(shí)且容易出錯(cuò),本文將介紹如何使用Python自動(dòng)創(chuàng)建Markdown表格,通過(guò)示例代碼詳細(xì)展示各種場(chǎng)景下的創(chuàng)建方法,提高表格生成的效率
    2024-01-01

最新評(píng)論