Flask 學習筆記(五)-request,response

Request

打印一些常用的請求信息

from flask import request
@app.route("/request/")
def req():
    print(request)
    print(type(request))
    # 請求方式
    print(request.method)
    print(request.data)
    # Get請求參數 ?後的參數
    print(request.args)
    # Post請求體中的參數
    print(request.form)
    # 上傳的文件
    print(request.files)
    # ip
    print(request.remote_addr)
    # 請求者身份
    print(request.user_agent)
    # 請求的url path地址
    print(request.url)

    return "Test Request!"

獲取GET請求參數時:
http://127.0.0.1:5000/request/?name=2

request.args.get('name')

若參數有多個重名時獲取GET請求參數時:
http://127.0.0.1:5000/request/?name=2&name=1

request.args.getlist('name')

Response

  • 視圖函數返回接收兩種類型
    • Response對象
    • 字符串
      • 針對字符串會幫我們包裝成Response
  • 返回內容
    • 返回的字符串
      • render_template
      • 添加第二個參數,可以控制返回的狀態碼
        • 數據正常,返回錯誤狀態碼
  • make_response
    • 製作一個響應進行返回
@app.route("/response1/")
def resp1():
    html = "<h1>Test Request!</h1>"
    response = make_response(html, 404)
    print(response)
    print(type(response))
    return response
  • Response
    • 直接創建Response進行返回
@app.route("/response2/")
def resp2():
    html = "<h1>Test Request!</h1>"
    response = Response(html, 404)
    print(response)
    print(type(response))
    return response
  • 其實最終返回的都是Response對象

重定向redirect

@app.route("/redirect/")
def redir():
    response = redirect(url_for('resp1'))
    print(response)
    print(type(response))
    return response

終止abort

直接返回錯誤碼403

@app.route("/abort/")
def ab():
    abort(403)
  • 返回JSON
    • jsonify 將數據格式化爲json格式,同時設置返回類型爲 application/json
    • json.dumps 將數據格式化爲json格式,沒有設置返回的數據類型,默認類型是text/html
@app.route("/json/")
def json_test():
    json_data = {"name": "123"}
    return json.jsonify(json_data)

源碼地址:https://github.com/565785929/StudyFlask/tree/master/d05

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章