Flask Python Web框架(二)
阿新 • • 發佈:2018-11-25
flask中模板的繼承,請求和響應,配置修改
一、模板
1.靜態檔案地址的反向解析
url_for('static',filename='<file_path>')
ex:
url_for('static',filename='images/b041.jpg')
結果: /static/images/b041.jpg
2.模板的繼承
(1)什麼是模板的繼承
模板的繼承類似於類的繼承,如果一個模板中出現的內容來自於另一個模板的話,那麼就可以使用繼承的方式來簡化開發
(2)語法
1.父模板
需要定義出哪些東西在子模板中是可以被重寫的 {% block 塊名 %} 父模板中正常顯示的內容 {% endblock %} block: 1.在父模板中是可以正常顯示的,沒有任何影響 2.在字模板中是可以被重寫的
2.子模板
1.需要指定繼承自哪個父模板
{% extends '父模板名稱' %}
2.重寫父模板中對應的內容
{% block 塊名 %}
此處編寫的內容會覆蓋掉父模板中同名block的內容
允許通過 {{super()}} 來呼叫父模板中的內容
{% endblock %}
二、修改配置
1、構建Flask 應用時允許指定的配置資訊
app=Flask( __name__, template_folder='muban', static_url_path='/static', static_folder='/statatic') template_folder : 指定存放模板的資料夾名稱 static_url_path : 訪問靜態資源的路徑 http://localhost:5000/static/xxx 查詢靜態資原始檔 static_folder : 指定存放靜態檔案的目錄名稱 在專案的根目錄中 ,有一個名為 static的目錄用於存放靜態檔案
2、啟動程式的執行配置
app.run(
debug = True,
port = 5555,
host = ‘0.0.0.0’
)
host : 指定訪問地址,0.0.0.0 表示區域網內的任何機器都可以訪問網站
三、請求(request) 和 響應(response)
1.HTTP協議 Request Headers - 請求訊息頭 Response Headers - 響應訊息頭 2.請求物件 - request request - 請求物件,封裝了所有與請求相關的資訊。如:請求資料,請求訊息頭,請求路徑,... ... 在Flask中,要使用 request 的話,必須先匯入 from flask import request 1.request的常用成員 1.scheme : 獲取請求方案(協議) 2.method : 獲取本期請求的請求方式(重點) 3.args : 獲取使用get請求方式提交的資料 4.form : 獲取使用post請求方式提交的資料 5.cookies : 獲取 cookies 的相關資訊 6.headers : 獲取 請求訊息頭 的相關資訊 7.files : 獲取上傳的檔案 8.path : 獲取請求的url地址(進入到主機後的請求資源地址,不包含請求引數) 9.full_path : 獲取請求的url地址(進入到主機後的請求資源地址,包含請求引數) 10.url : 獲取完整的請求地址,從協議開始的地址 2.獲取請求提交的資料 1.get 請求方式 1.表單允許實現get請求 <form action="" method="get"> 姓名:<input name="uname"> </form> 2.在請求地址後拼請求提交的引數 http://localhost:5000/06-get?uname=xxx&upwd=xxx 獲取 get 請求方式提交的資料 : request.args 封裝的是get請求的資料 2.post 請求方式 post請求只有在表單中才能夠被觸發 <form method="post"> 獲取 post 請求提交的資料 : request.form 封裝的就是 post 請求的資料,型別為字典 request.form['name'] : 獲取 name 對應的值 request.form.get('name') : 獲取 name 對應的值 request.form.getlist('name') : 獲取 name 列表資料(如複選框,下拉列表) 3、響應(response) 1.什麼是響應 響應就是由伺服器端帶給客戶端的內容,對應著請求。 響應可以是普通的字串,模板 或 重定向 return "普通字串" return render_template('xxx.html') 2.響應物件 響應物件:將響應的內容封裝到一個物件中,可以完成更多的響應的行為(如:增加cookies,...) 在Flask中,使用 make_response() 構建響應物件 from flask import make_response @app.route('/xxx') def xxx(): resp = make_response('響應內容') # 允許實現其他的響應行為 return resp 3.重定向 1.什麼是重定向 由伺服器端通知客戶端重新向一個新的地址傳送請求 2.語法 from flask import redirect return redirect('重定向地址') **resp = redirect('重定向地址') #可以藉助resp實現其他的響應行為 return resp