模板檔案結構:
跳轉模板一般使用: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 elif else
# 第一次if判定
user list:
class="}">
user
no }:
} #最後一次if判定
total users: }
#都不滿足執行else
no users found
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)忽略,轉義,賦值
(1) 請求物件request: 它本身是乙個字典,dict[『key』] 或者是dict.get[『key』]#忽略模板語法
flask會對」.html」, 「.htm」, 「.xml」, 「.xhtml」這四種型別的模板檔案開啟html格式自動轉義。這樣也可以防止html語法注入.
#將自動轉義關閉
#使用set關鍵字給變數賦值
表示式含義
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:本身也是乙個字典
(3) url_for()函式:通過檢視找到路由session['user'] = u'張三'
設定session需要設定秘鑰
"stylesheet" href="}">
(4) with與set
with語句可以建立內部作用域,主要是起到隔離作用#set 新增變數
#set也可賦值給列表或元組
#在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 ...