python flask 處理 url param和header和form和json

基于HTTP協議客戶端和服務端傳遞信息通常會把具體的內容放在四個地方。

  1. 放在url的請求參數中,get和post都可以,不過大部分情況下以get居多。

  2. POST 的form中,在服務端渲染表單盛行(struts,flask_wtf)的年代,登陸,注冊等基本都是把用戶填寫的信息放在form中。

  3. post中的json格式,現在最佳的實踐方案就是前后端通過restful的API,傳遞json數據來進行通信。

  4. 還有很多時候是需要獲取http的head信息,比如一些auth信息或者referer,useragent的信息等。

獲取url和form以及header內容

Postman 發送的http測試請求

POST /test?x=valueX HTTP/1.1
Host: 127.0.0.1:5000
Content-Type: application/x-www-form-urlencoded
z: valueZ
Cache-Control: no-cache
Postman-Token: bb060ed5-783e-6470-05ee-f05a71df972c

y=valueY

處理請求:

from flask import request

@app.route('/test', methods=['GET', 'POST'])
def test():
    # 獲取 url 參數內容
    x = request.args.get("x")
    
    # 獲取 form 表單內容
    y = request.form.get("y")
    
    # 獲取 http 頭部內容
    z = request.headers.get("z")
    
    print("x from url param: ", x)
    print("y from form param: ", y)
    print("z from headers: ", z)
    return "test"

獲取json內容

發起的請求

POST /test HTTP/1.1
Host: 127.0.0.1:5000
Content-Type: application/json
z: valueZ
Cache-Control: no-cache
Postman-Token: 2b3e8991-a48e-1653-c6e3-1b07d7411a29

{"url": "http://dig404.com"}

處理json請求

@app.route('/test', methods=['GET', 'POST'])
def test():
    
    # 獲取json格式的body,返回直接就是dict類型
    content = request.get_json(silent=True)
    content.get('url', None)
    print(content)
    return ""

如果喜歡,您就給個贊唄。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 彼岸花是沒有彼岸的守候,凄楚的女子假裝幸福的守侯 窗外雨落停橋邊 驀然回首濕襟衫 情斷三生于江畔 何人續寫苦情緣 ...
    pz五月閱讀 371評論 0 0
  • 木子李v三石閱讀 249評論 0 0
  • 【0524今日話題】你了解你的父母嗎?比如:他們最想去的地方,最愛吃的東西,最大的遺憾以及他們的專長等等。 ———...
    朱朱的餐具閱讀 187評論 1 3
  • 這些年我遇到的鄰居 2017.3.30 昨天剛剛到家,鄰居就敲門,開門一看,給我送來一盤水煮蝦。心里好感動。感謝老...
    艾米姜閱讀 438評論 0 0