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