1. 程式人生 > >Flask Python Web框架(二)

Flask Python Web框架(二)

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