Flask請求參數(shù)獲取常用方式詳解
一、參數(shù)獲取方式全景圖
先來看一個總覽表格,對比三種主要獲取方式:
| 獲取方式 | 適用場景 | 示例URL | 代碼示例 |
|---|---|---|---|
| 路由參數(shù) <int:aid> | URL路徑中的變量部分 | /detail/123 | def detail(aid): |
| request.args | URL查詢字符串(?后面的鍵值對) | /publish?title=hello | request.args.get('title') |
| request.form | POST表單提交的數(shù)據(jù) | 表單提交(無直接URL體現(xiàn)) | request.form.get('title') |
二、詳細(xì)解析每種方式
1. 路由參數(shù):URL路徑中的變量
@app.route('/detail/<int:aid>')
def detail(aid):
return f"文章ID是: {aid}"
識別特征:URL路徑中用< >包裹的部分
獲取方式:直接作為函數(shù)參數(shù)
示例:
- 訪問URL: /detail/42
- 結(jié)果: aid自動獲取值`42
2. URL查詢參數(shù)(request.args):問號后的鍵值對
@app.route('/search')
def search():
keyword = request.args.get('q')
return f"搜索關(guān)鍵詞: {keyword}"
識別特征:URL中?后面的部分,形如key=value,多個參數(shù)用&連接
獲取方式:request.args.get('key')
示例:
訪問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請求體
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')
return f"用戶{username}登錄中..."
識別特征:通過<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>
表單提交 → 請求體:
username=admin&password=123456
↓
request.form.get('username') → "admin"
request.form.get('password') → "123456"
三、常見混淆場景解析
混淆1:把路由參數(shù)當(dāng)成查詢參數(shù)獲取
錯誤做法:
@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ù)
錯誤做法:
# 訪問URL: /api?user=john
user = request.form.get('user') # 返回None
正確做法:
user = request.args.get('user') # 返回"john"
混淆3:用request.args獲取POST表單數(shù)據(jù)
錯誤做法:
# 提交了一個登錄表單
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請求的參數(shù)通常在URL中 → request.args
- POST請求的參數(shù)通常在請求體中 → request.form
3.開發(fā)時的小技巧:
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}的個人資料,操作: {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"注冊成功: {username} ({email})"
return '''
<form method="post">
用戶名: <input name="username"><br>
郵箱: <input name="email"><br>
<button>注冊</button>
</form>
'''
記住:觀察URL結(jié)構(gòu)是第一步,然后根據(jù)參數(shù)所在位置選擇正確的獲取方法。
到此這篇關(guān)于Flask請求參數(shù)獲取常用方式詳解的文章就介紹到這了,更多相關(guān)Flask獲取請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中random.shuffle()函數(shù)用法代碼案例
random.shuffle方法,對元素進(jìn)行重新排序,打亂原有的順序,返回一個隨機(jī)序列,該方法的作用類似洗牌,本文重點給大家介紹Python中random.shuffle()函數(shù)用法代碼案例,感興趣的朋友跟隨小編一起看看吧2022-11-11
Python基礎(chǔ)之變量的相關(guān)知識總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python變量展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Django基礎(chǔ)知識 URL路由系統(tǒng)詳解
這篇文章主要介紹了Django基礎(chǔ)知識 URL路由系統(tǒng)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
Python自動創(chuàng)建Markdown表格使用實例探究
Markdown表格是文檔中整理和展示數(shù)據(jù)的重要方式之一,然而,手動編寫大型表格可能會費時且容易出錯,本文將介紹如何使用Python自動創(chuàng)建Markdown表格,通過示例代碼詳細(xì)展示各種場景下的創(chuàng)建方法,提高表格生成的效率2024-01-01

