from flask import Flask
# 1.創建web應用
from flask import make_response
from flask import redirect
from flask import request
from flask import url_for
from werkzeug.datastructures import FileStorage
app = Flask(__name__)
# 路由: 讓視圖函數綁定對應的URL, 當訪問URL時, 會調用該視圖函數
@app.route("/")
def index():
return "hello flask"
# methods參數用於設置支持的請求方式
@app.route('/index1', methods=['GET', 'POST']) # 路由必須以路徑分隔符 / 開頭
def index1():
return "index1"
@app.route('/index2', methods=['GET', 'POST'])
def index2():
# url 這次請求的請求方式 請求報文
print(request.url)
print(request.method)
print(request.headers)
print(request.headers["Host"])
print(request.headers.get("Host1")) # 鍵不存在, 不會報錯
# 獲取查詢字符串 一般用於GET傳遞數據 類字典對象
print(request.args.get("name"))
# 獲取POST的鍵值對數據 類字典對象
print(request.form.get("name"))
# 獲取POST發送的文件
file = request.files.get("1") # type: FileStorage
# 保存文件到本地
file.save("1.jpg")
# 獲取純文本內容
data = request.data
print(data, 1111)
data_str = data.decode("utf-8")
print(data_str, 2222)
return "index2"
# 自定義響應對象
@app.route('/index3')
def index3():
# 手動創建響應對象 場景:需要自定義響應報文
response = make_response("index3")
print(response.headers)
return response
pass
# 自定義狀態碼
@app.route('/index4')
def index4():
# 設置第二個返回值 可以用於自定義狀態碼 作用:方便開發人員快速排錯
return "index4", 700
# 重定向:跳轉到另一個網絡位置 比如 頁面跳轉
@app.route('/index5')
def index5():
# 獲取視圖函數的url
url1 = url_for("index")
print(url1)
return redirect(url1)
# 漫畫詳情頁面
@app.route('/index6')
def index6():
# 取出請求頭中的cookie數據
is_help = request.cookies.get("is_help")
# 判斷是否顯示過幫助信息
if is_help:
return "直接顯示漫畫詳情"
response = make_response("先顯示幫助信息,再顯示漫畫詳情")
response.set_cookie("is_help", "1", max_age=60 * 60 * 24)
return response
if __name__ == '__main__':
# 記錄了所有的路由規則(url 支持的請求方式 對應的視圖函數名)
print(app.url_map)
# 萬能ip 0.0.0.0 外網/局域網請求都可以監聽
# debug=True 是否開啓調試模式 1> 可以在頁面上顯示python錯誤 2> 更新代碼時, 自動重啓服務器
# 2.運行應用(啓動flask內置的測試服務器, 並且將請求轉發給web應用)
app.run(host="0.0.0.0", port=8000, debug=True)
python flask-01
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.