天天看點

Flask從入門到入土(三)——模闆

  模闆是一個包含響應文本的檔案,其中包含佔位變量表示的動態部分,其具體值隻是請求上下文中才能知道。使用真實值替換變量,再傳回最終得到的響應字元串,這一過程稱爲渲染。爲了渲染模闆,Flask使用了一個名爲Jinja2的強大面闆引擎。

Jinja2模闆引擎

  形式簡單的Jinja2模闆就是一個包含響應文本的檔案。

  Flask程式源碼:

1 from flask import Flask,render_template
 2 
 3 app = Flask(__name__)
 4 
 5 @app.route('/')
 6 def index():
 7     return render_template('index.html')
 8 
 9 @app.route('/user/<name>')
10 def user(name):
11     return render_template('user.html',name=name)
12 
13 if __name__=='__main__':
14     app.run()      

    index.html內容:  

1 <h6>hello world</h6>      

  user.html內容:

1 <h6>hello,{{name}}!</h6>      

  運行結果:

    

Flask從入門到入土(三)——模闆

      

Flask從入門到入土(三)——模闆

  結果與之前Flask從入門到入土(二)中結果相同。

使用Flask-Bootstrap內建Twitter Bootstrap

  Bootstrap是一個Twitter的開源架構,它提供的用戶界面組件可以用於創建整潔且具有吸引力的網頁,而且這些網頁還能相容所有現代Web瀏覽器。

  Bootstrap是客戶端架構,是以不會直接涉及服務器。服務器需要做的隻是提供引用了Bootstrap層疊樣式表和Javascript檔案的html響應,並在html,css和Javascript代碼中實例化所需組件。這些操作最理想的執行場所就是模闆。

  想要在程式中內建Bootstrap,顯然要對模闆做所有必要的改動。不過,更簡單的方法是使用一個名爲Flask-Bootstrap的Flask擴展,簡化內建的過程。Flask-Bootstrap使用pip安裝:

1  pip install flask-bootstrap      
Flask從入門到入土(三)——模闆

Flask擴展一般都是在創建實例時初始化。 

  from flask.ext.bootstrap import Bootstrap

:專為 Flask 開發的擴充都暴露在 flask.ext 命名空間下,Flask-Bootstrap 輸出了一個 Bootstrap 類。

  bootstrap = Bootstrap(app)

:Flask 擴充一般都在建立程式執行個體時初始化,這行代碼是 Flask-Bootstrap 的初始化方法。

1 from flask import Flask,render_template
 2 from flask.ext.bootstrap import Bootstrap
 3 
 4 app = Flask(__name__)
 5 bootstrap = Bootstrap(app)
 6 
 7 @app.route('/')
 8 def index():
 9     return render_template('index.html')
10 
11 if __name__ == "__main__":
12     app.run(debug = True)