Flask請(qǐng)求參數(shù)獲取常用方式詳解
一、參數(shù)獲取方式全景圖
先來(lái)看一個(gè)總覽表格,對(duì)比三種主要獲取方式:
| 獲取方式 | 適用場(chǎng)景 | 示例URL | 代碼示例 |
|---|---|---|---|
| 路由參數(shù) <int:aid> | URL路徑中的變量部分 | /detail/123 | def detail(aid): |
| request.args | URL查詢字符串(?后面的鍵值對(duì)) | /publish?title=hello | request.args.get('title') |
| request.form | POST表單提交的數(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"
三、常見(jiàn)混淆場(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.開(kāi)發(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中常用的初等函數(shù)(內(nèi)置函數(shù))
初等函數(shù)是由基本初等函數(shù)經(jīng)過(guò)有限次的四則運(yùn)算和復(fù)合運(yùn)算所得到的函數(shù),這篇文章主要介紹了Python中常用初等函數(shù)(內(nèi)置函數(shù))的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06
Tensorflow2.1實(shí)現(xiàn)文本中情感分類實(shí)現(xiàn)解析
這篇文章主要為大家介紹了Tensorflow2.1實(shí)現(xiàn)文本中情感分類實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Python利用邏輯回歸模型解決MNIST手寫數(shù)字識(shí)別問(wèn)題詳解
這篇文章主要介紹了Python利用邏輯回歸模型解決MNIST手寫數(shù)字識(shí)別問(wèn)題,結(jié)合實(shí)例形式詳細(xì)分析了Python MNIST手寫識(shí)別問(wèn)題原理及邏輯回歸模型解決MNIST手寫識(shí)別問(wèn)題相關(guān)操作技巧,需要的朋友可以參考下2020-01-01
使用Python的Flask框架來(lái)搭建第一個(gè)Web應(yīng)用程序
Flask框架是一個(gè)以輕量級(jí)著稱的Web開(kāi)發(fā)框架,近兩年來(lái)在Web領(lǐng)域獲得了極高的人氣,這里我們就來(lái)看如何使用Python的Flask框架來(lái)搭建第一個(gè)Web應(yīng)用程序2016-06-06
Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例
這篇文章主要介紹了Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python使用FTP上傳文件的實(shí)現(xiàn)示例
本文主要介紹了Python使用FTP上傳文件的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
docker-py 用Python調(diào)用Docker接口的方法
今天小編就為大家分享一篇docker-py 用Python調(diào)用Docker接口的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python使用Bokeh庫(kù)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化
Python語(yǔ)言以其豐富的數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)而聞名,其中Bokeh庫(kù)作為一種功能強(qiáng)大的可視化工具,為實(shí)時(shí)數(shù)據(jù)的可視化提供了優(yōu)秀的支持,本文將介紹如何使用Bokeh庫(kù)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可視化,并提供相關(guān)代碼實(shí)例,需要的朋友可以參考下2024-05-05

