【Python Flask實戰】獲取HTTP請求數據
客戶端通過Url訪問服務端程序,會發送給服務端兩類信息,一類是HTTP請求頭,另外一類就是請求數據。
一般HTTP請求會通過GET方法和POST方法向服務端提交數據。因此,服務端程序需要獲得客戶端的這些請求數據,然后會做進一步的處理。例如,如果服務端要想對客戶端的類型(使用的什么瀏覽器)做一下統計,就需要獲取HTTP請求頭中的User-Agent字段的值。如果要得到客戶端表單提交的數據,就要在服務端獲取GET請求或POST請求的數據。
讀取POST請求在后面的文章會詳細介紹,本文先看一個如何讀取HTTP請求頭和GET請求的數據。在Flask中讀取HTTP請求頭和GET請求的數據需要導入flask模塊中的一個全局變量request,然后使用request.headers.get(...)讀取HTTP請求頭數據。get方法的參數就是HTTP請求頭字段的名稱。使用request.args.get(...)讀取GET請求中的某個字段的值。get方法的參數值就是GET請求的字段名稱。
本例編寫了兩個路由,分別用來讀取HTTP請求頭數據和GET請求數據。
- from flask import Flask
- from flask import request
- app = Flask(__name__)
- # 根路由,用來讀取HTTP請求頭數據
- @app.route('/')
- def index():
- # 讀取HTTP請求頭的User-Agent字段值
- user_agent = request.headers.get('User-Agent')
- return '<h1>Your browser is %s</h1>' % user_agent
- # 用于讀取GET請求數據的路由
- @app.route('/abc')
- def abc():
- # 讀取GET請求中的arg字段值
- value = request.args.get('arg')
- return '<h1>arg = %s</h1>' % value
- if __name__ == '__main__':
- app.run()
運行程序,然后在瀏覽器地址欄中輸入如下的Url。
- http://localhost:5000
訪問上面的Url后,會在瀏覽器中輸出如圖1所示的信息。要注意的是,這個輸出信息會根據讀者使用的瀏覽器不同而有所差異。但都會描述了讀者使用的瀏覽器類型。例如,本例使用Chrome瀏覽器進行測試,所以輸出信息會出現Chrome以及對應的版本號。
圖1 返回瀏覽器類型
接下來在瀏覽器地址欄輸入如下的Url。
- http://localhost:5000/abc?arg=hello
會在瀏覽器中輸出如圖2所示的內容。
圖2 返回GET請求參數值
本文轉載自微信公眾號「極客起源」,可以通過以下二維碼關注。轉載本文請聯系極客起源公眾號。