Flask Web開發入門 Jinja2

2021-08-21 05:57:22 字數 2750 閱讀 8341

jinja2是基於python的模版引擎,它能完全支援unicode,並具有繼承的沙箱執行環境。它的設計思想**於django的模版引擎,並擴充套件了其語法和一系列強大的功能。

預設情況下,flask在程式資料夾中的templates子資料夾中尋找模版。

ununited.py

from flask import flask,render_template

def hello(name):

if name=='westos':

return render_template('index.html',name=name)

else:

return render_template('index.html',name='world')

if __name__=="__main__":

index.html

執行結果:終端輸出

* running on  (press ctrl+c to quit)
在瀏覽器的位址列輸入

render_template()函式

在上面的程式中,使用了flask提供的render_template函式,該函式把jinja2模版引擎整合到了程式中。render_template函式的第乙個引數是模版的檔名。隨後的引數都是鍵值對。表示模版中的變數對應的真實值。

變數

jinja模版使用} 表示乙個變數,它告訴模版引擎這個位置的值從渲染模版時使用的資料中獲取。還能使用列表,字典和物件等複雜的型別。

如:

hello,}.hello,}.

控制結構jinja提供了多種控制結構來改變模版的渲染流程。比如常見的判斷結構,迴圈結構。

巨集

jinja2裡面的巨集相當於python裡面的函式。

定義乙個巨集

macro.html

#}    

enroll.html

繼承另一種重複使用**的強大方式是模版繼承,就像類繼承一樣需要乙個基類,這裡也需要乙個基模版。

base.html

繼承模版

index

}

繼承之後重新定義title、head、body,使用super()獲取基模版原來的內容。

變數顯示

from flask import flask,render_template

class user(object):

def __init__(self,name,passwd):

self.name=name

self.passwd=passwd

def __str__(self):

return 'index.html

}}}}

}

}}

}使用者名稱

密碼 }

}

過濾器用來在變數被使用或者顯示前,對其做轉換處理的。可以認為是一種轉換函式,輸入的引數就是其所修飾的變數,返回的就是變數轉換後的值。

將變數傳給前端

from flask import flask, render_template

class user(object):

def __init__(self, name, passwd):

self.name = name

self.passwd = passwd

def __str__(self):

return '' % (self.name)

# 檢視函式

def index():

name = 'westoswesto***am'

li = [1, 2, 3, 4]

d = dict(a=1, b=3, c=6)

u = user('root', 'redhat')

a = [,]

return render_template('index2.html',

name=name,

li=li,

d=d,

u=u,

a=a)

#自定義乙個過濾器

def sub(l, start, end):

return l[::-1]

if __name__ == "__main__":

index2.html

}}

}}}}

-->}}

-->}}

}}}}

}}}}

}}}}

}

}}

}} }}

}使用者名稱

密碼 }

}

Flask Web開發入門 模版引擎

flask是乙個使用python編寫的輕量級web應用框架。其wsgi工具箱採用werkzeug,模版引擎則使用jinja2。模板引擎 這裡特指用於web開發的模板引擎 是為了使使用者介面與業務資料 內容 分離而產生的,它可以生成特定格式的文件,用於 的模板引擎就會生成乙個標準的html文件。我們可...

三 Flask web開發快速入門

from flask import flask,url for,request,render template,session from werkzeug.utils import redirect,escape def index if username in session return log...

Flask web開發流程

flask專案開發流程 搭建開發環境 pipenv pip pipfile virtualenv 安裝pip和pipenv 建立虛擬環境 pipenv install 為當前專案建立虛擬環境 pipenv shell 啟用虛擬環境 pipenv run python hello.py 執行程式 非虛...