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') |
二、詳細解析每種方式
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"搜索關鍵詞: {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ù)當成查詢參數(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') # 帶默認值 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ù)所在位置選擇正確的獲取方法。
到此這篇關于Flask請求參數(shù)獲取常用方式詳解的文章就介紹到這了,更多相關Flask獲取請求參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python中random.shuffle()函數(shù)用法代碼案例
random.shuffle方法,對元素進行重新排序,打亂原有的順序,返回一個隨機序列,該方法的作用類似洗牌,本文重點給大家介紹Python中random.shuffle()函數(shù)用法代碼案例,感興趣的朋友跟隨小編一起看看吧2022-11-11Python自動創(chuàng)建Markdown表格使用實例探究
Markdown表格是文檔中整理和展示數(shù)據(jù)的重要方式之一,然而,手動編寫大型表格可能會費時且容易出錯,本文將介紹如何使用Python自動創(chuàng)建Markdown表格,通過示例代碼詳細展示各種場景下的創(chuàng)建方法,提高表格生成的效率2024-01-01