flask中獲取各種請求數(shù)據(jù)的常見方法小結(jié)
獲取查詢字符串參數(shù)(GET 請求)
查詢字符串參數(shù)一般在 URL 里,以 ?key1=value1&key2=value2 這種形式存在??赏ㄟ^ request.args 來獲取。
from flask import Flask, request
app = Flask(__name__)
@app.route('/get_params')
def get_params():
# 獲取單個參數(shù)
name = request.args.get('name')
age = request.args.get('age', type=int) # 指定參數(shù)類型
# 獲取所有參數(shù)
all_params = request.args.to_dict()
return f"Name: {name}, Age: {age}, All params: {all_params}"
if __name__ == '__main__':
app.run(debug=True)

獲取表單數(shù)據(jù)(POST 請求)
表單數(shù)據(jù)通常由 HTML 表單提交,能通過 request.form 來獲取 form-data 和 x-www-form-urlencoded 數(shù)據(jù)。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit_form', methods=['POST'])
def submit_form():
# 獲取單個表單字段
username = request.form.get('username')
password = request.form.get('password')
# 獲取所有表單字段
all_form_data = request.form.to_dict()
return f"Username: {username}, Password: {password}, All form data: {all_form_data}"
if __name__ == '__main__':
app.run(debug=True)


獲取 JSON 數(shù)據(jù)(POST、PUT 等請求)
如果請求數(shù)據(jù)是 JSON 格式,可使用 request.get_json() 方法獲取。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit_json', methods=['POST'])
def submit_json():
# 獲取 JSON 數(shù)據(jù)
data = request.get_json()
if data:
name = data.get('name')
age = data.get('age')
return f"Name: {name}, Age: {age}"
else:
return "No valid JSON data provided", 400
if __name__ == '__main__':
app.run(debug=True)

獲取請求頭信息
請求頭信息可通過 request.headers 來獲取。
from flask import Flask, request
app = Flask(__name__)
@app.route('/get_headers')
def get_headers():
# 獲取單個請求頭
user_agent = request.headers.get('User-Agent')
# 獲取所有請求頭
all_headers = dict(request.headers)
return f"User-Agent: {user_agent}, All headers: {all_headers}"
if __name__ == '__main__':
app.run(debug=True)

獲取上傳文件
文件上傳請求的數(shù)據(jù)能通過 request.files 來獲取。
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload_file', methods=['POST'])
def upload_file():
# 獲取上傳的文件
file = request.files.get('file')
if file:
# 保存文件
file.save('uploaded_file.txt')
return "File uploaded successfully"
else:
return "No file provided", 400
if __name__ == '__main__':
app.run(debug=True)

同時獲取 URL 查詢字符串參數(shù)和表單數(shù)據(jù)
在 Flask 里, request.values 是一個特殊的 MultiDict 對象,它將 request.args (用于獲取 URL 查詢字符串參數(shù))和 request.form (用于獲取表單數(shù)據(jù))結(jié)合起來,提供了一種統(tǒng)一的方式來訪問 GET 和 POST 請求中的數(shù)據(jù)。
from flask import Flask, request
app = Flask(__name__)
@app.route('/mixed_data', methods=['GET', 'POST'])
def mixed_data():
param1 = request.values.get('param1')
param2 = request.values.get('param2')
return f"Param1: {param1}, Param2: {param2}"
if __name__ == '__main__':
app.run(debug=True)

request.values會優(yōu)先獲取表單數(shù)據(jù),如果表單數(shù)據(jù)和查詢字符串參數(shù)有同名的鍵,會返回表單數(shù)據(jù)的值。- 對于 JSON 數(shù)據(jù)和文件上傳數(shù)據(jù),
request.values無法獲取,需要使用request.get_json()和request.files來處理。
到此這篇關(guān)于flask中獲取各種請求數(shù)據(jù)的常見方法小結(jié)的文章就介紹到這了,更多相關(guān)flask獲取請求數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Python實現(xiàn)網(wǎng)絡(luò)運維自動化的實戰(zhàn)案例
Python作為一種簡潔而強大的編程語言,已經(jīng)成為網(wǎng)絡(luò)運維自動化的熱門選擇,本文將介紹如何利用Python實現(xiàn)網(wǎng)絡(luò)設(shè)備配置管理、監(jiān)控和故障排除等自動化任務(wù),并提供代碼示例,需要的朋友可以參考下2024-03-03
Pandas數(shù)值排序 sort_values()的使用
本文主要介紹了Pandas數(shù)值排序 sort_values()的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python中使用NumPy進行數(shù)據(jù)處理方式
這篇文章主要介紹了Python中使用NumPy進行數(shù)據(jù)處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
Django+Celery實現(xiàn)定時任務(wù)的示例
Celery是一個基于python開發(fā)的分布式任務(wù)隊列,而做python WEB開發(fā)最為流行的框架莫屬Django,本示例使用主要依賴包Django+Celery實現(xiàn)定時任務(wù),感興趣的朋友一起看看吧2021-06-06

