Flask入門模板Jinja2引擎與語法 四

2021-09-20 09:21:13 字數 2911 閱讀 1401

模板檔案結構:

project/

templates/

模板檔案

跳轉模板一般使用:

from flask import render_template,render_template_string

render_template

return render_template('index.html') #將index.html頁面的內容讀取出來並進行響應
render_template_string

return render_template_string('')  #可以執行html標籤語句
概述: 模板類似於mvc模式下的view檢視層,模板引擎其實就是用來將模板同業務**分離,並解析模板語言的程式.

比如模板**

hello template

從上面例子可以發現:

模板表示式是包含在分割符}內

模板控制語句都是包含在分割符中

模板注釋都是包含在分隔符中

變數 : 檢視傳遞過來的資料

}標籤 : 就是python中的迴圈\分支結構…

(1)表示式一般分為以下幾種:

表示式種類

舉例變數(最常用)

}基礎型別( 字串,數值,列表,元祖,字典,布林值)

一般配合表示式使用}

運算表示式(算術與邏輯)

} }過濾器』 | 』 ,測試器』 is 『

一般配合表示式

函式呼叫

}「in」操作符

}字串連線符」~」

}(2)控制語句一般有:

# 第一次if判定

user list:

class="}">

user

no }:

} #最後一次if判定

total users: }

#都不滿足執行else

no users found

if elif else

}為真}為真

以上都為假

for in 迴圈

}}}==>}

和else搭配

......

注意 :當進行迭代的物件不存在時 則執行else

jinja2的迴圈內建變數獲取當前迭代狀態:

變數描述

loop.index

獲取當前迭代的索引,從1開始

loop.index0

獲取當期迭代的索引 從0開始

loop.first

是否為第一次迭代,返回true或者false

loop.last

是否為最後一次迭代 返回true或者false

loop.length

迭代的長度

loop.depth

當前迴圈在遞迴中的層級(從1開始)

loop.depth0

當前迴圈在遞迴中的層級(從0開始)

(3)忽略,轉義,賦值

#忽略模板語法

flask會對」.html」, 「.htm」, 「.xml」, 「.xhtml」這四種型別的模板檔案開啟html格式自動轉義。這樣也可以防止html語法注入.

#將自動轉義關閉

#使用set關鍵字給變數賦值

(1) 請求物件request: 它本身是乙個字典,dict[『key』] 或者是dict.get[『key』]

表示式含義

request.method

獲取請求的方法,post get

request.form

獲取表單資料

request.args

請求的引數

request.url

獲取完整的請求url

request.base_url

獲取去掉傳參的url

request.host_url

獲取主機名部分的url

request.files

獲取form表單檔案上傳的資料

request.cookies

獲取cookie資訊

request.headers

獲取請求頭資訊

(2) 會話物件session:本身也是乙個字典

session['user'] = u'張三'

設定session需要設定秘鑰

(3) url_for()函式:通過檢視找到路由

"stylesheet" href="}">
(4) with與set

#set 新增變數

#set也可賦值給列表或元組

with語句可以建立內部作用域,主要是起到隔離作用

#在with該作用域下可以使用

}

flask框架模板jinja2

from flask import flask,render template from flask script import manager def index return this is index def template return render template file01.htm...

Flask從入門到精通之Jinja2模板引擎

我們使用乙個簡單的例子切入到jinja2模板引擎,形式最簡單的jinja2模板引擎就是乙個包含響應文字的檔案,例項如下 最簡單的包含變數的模板引擎例項如下 預設情況下,flask 在程式資料夾中的templates 子資料夾中尋找模板。在下乙個hello.py版本中,要把前面定義的模板儲存在temp...

Flask框架(二)模板引擎JinJa2

三.巨集操作 jinja2 是乙個現代的,設計者友好的,仿照 django 模板的 python 模板語言。它速度快,被廣泛使用,並且提供了可選的沙箱模板執行環境保證安全 hello lower safe 渲染值時不轉義 capitalize 把值的首字母轉換成大寫,其他字母轉換成小寫 lower ...