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

Jinja2模板引擎

  形式簡單的Jinja2模板就是一個包含響應文本的文件。

  Flask程序源碼:

 from flask import Flask,render_template

 app = Flask(__name__)

 @app.route('/')
def index():
return render_template('index.html') @app.route('/user/<name>')
def user(name):
return render_template('user.html',name=name) if __name__=='__main__':
app.run()

    index.html內容:  

 <h6>hello world</h6>

  user.html內容:

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

  運行結果:

    

      

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

使用Flask-Bootstrap集成Twitter Bootstrap

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

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

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

  pip install flask-bootstrap

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

  from flask.ext.bootstrap import Bootstrap:专为 Flask 开发的扩展都暴露在 flask.ext 命名空间下,Flask-Bootstrap 输出了一个 Bootstrap 类。

  bootstrap = Bootstrap(app):Flask 扩展一般都在创建程序实例时初始化,这行代码是 Flask-Bootstrap 的初始化方法。

 from flask import Flask,render_template
from flask.ext.bootstrap import Bootstrap app = Flask(__name__)
bootstrap = Bootstrap(app) @app.route('/')
def index():
return render_template('index.html') if __name__ == "__main__":
app.run(debug = True)

  

Flask從入門到入土(三)——模板的更多相关文章

  1. Flask從入門到入土(三)——Web表單

    Flask-WTF擴展可以把處理Web表單的過程變成一種愉悅的體驗.這個擴展對獨立的WTForms包進行了包裝,方便集成到Flask程序中. Flask-WTF及其依賴可使用pip安裝: pip in ...

  2. Flask從入門到入土(二)——請求响应與Flask扩展

    ———————————————————————————————————————————————————————————— 一.程序和請求上下文 Flask從客戶端收到請求時,要讓視圖函數能訪問一些對象 ...

  3. Flask從入門到入土(一)——程序的基本結構

    一.初始化 所有Flask程序都必須創建一個程序實例.Web服務器使用一種名爲Web服務器網關接口的協議,把接收自客戶端的所有請求都轉交給這個對象處理.程序實例書Flask類的對象,創建代碼: fro ...

  4. Flask從入門到入土(四)——登錄實現

    表單介紹 1.表單標籤 聲明表單的範圍,位於表單標籤中的元素將被提交 語法: <form>  </form> 屬性: Method(提交方式get,post) , Enctyp ...

  5. Flask從入門到入土(五)——Flask与数据库

    import sqlite3 def init_db(): sql = 'create table user(id INT,name TEXT)' conn = sqlite3.connect(&qu ...

  6. GOOGLE搜索從入門到精通V4.0

    1,前言2,摘要3,如何使用本文4,Google簡介5,搜索入門6,初階搜索 6.1,搜索結果要求包含兩個及兩個以上關鍵字 6.2,搜索結果要求不包含某些特定資訊 6.3,搜索結果至少包含多個關鍵字中 ...

  7. Delphi APP 開發入門(三)簡易計算機

    Delphi APP 開發入門(三)簡易計算機 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:68 ...

  8. 依賴注入入門——Unity(二)

    參考博客文章http://www.cnblogs.com/kebixisimba/category/130432.html http://www.cnblogs.com/qqlin/tag/Unity ...

  9. Delphi APP 開發入門(八)SQLite資料庫

    Delphi APP 開發入門(八)SQLite資料庫 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次 ...

随机推荐

  1. Servlet--HttpServlet类

    HttpServlet类 定义 public class HttpServlet extends GenericServlet implements Serializable 这是一个抽象类,用来简化 ...

  2. 创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。

    /** * 创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名. */ private function createSign($parameters,$key) { $signP ...

  3. libev学习代码

  4. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  5. 【转】shell字符串截取

    shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...

  6. 什么是NAS.什么是黑白群晖?(转)

    前言               为了让更多的新人可以简单了解什么是nas,什么是黑群晖.什么是白群晖!有什么作用?特此制作以下教学!(原文为MOMO所写).图片也大体从互联网上下载.有对原作者不便之 ...

  7. java中的各种Queue

    java中的各种并发Queue可以归为以下的几种: ConcurrentLinkedQueue: 一个由链表结构组成的非阻塞队列 ArrayBlockingQueue :一个由数组结构组成的有界阻塞队 ...

  8. BZOJ 3198: [Sdoi2013]spring [容斥原理 哈希表]

    3198: [Sdoi2013]spring 题意:n个物品6个属性,求有多少不同的年份i,j满足有k个属性对应相等 一开始读错题了,注意是对应相等 第i个属性只能和第i个属性对应 容斥一下 \[ 恰 ...

  9. BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]

    1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2249  Solved: 1337[Submit] ...

  10. django-rest-framework快速入门

    前言:第一次接触django-rest-framework是在实习的时候.当时也不懂,看到视图用类方法写的感觉很牛逼的样子.因为官网是英文的,这对我的学习还是有一点的阻力的,所以当时也没怎么学.真是太 ...