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)絡運維自動化的實戰(zhàn)案例
Python作為一種簡潔而強大的編程語言,已經(jīng)成為網(wǎng)絡運維自動化的熱門選擇,本文將介紹如何利用Python實現(xiàn)網(wǎng)絡設(shè)備配置管理、監(jiān)控和故障排除等自動化任務,并提供代碼示例,需要的朋友可以參考下2024-03-03Pandas數(shù)值排序 sort_values()的使用
本文主要介紹了Pandas數(shù)值排序 sort_values()的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07Python中使用NumPy進行數(shù)據(jù)處理方式
這篇文章主要介紹了Python中使用NumPy進行數(shù)據(jù)處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02