前段時間需要做一個模板處理的工作,因為需要在模板裡面進行邏輯處理,簡單的元組字串替換和關鍵字字串替換已經不能滿足需求了。所以選擇python的第3方模板引擎來實現這個功能。目前大家用的比較多的模板引擎主要是:mako和jinja。 我對比了下,發現jinja的模板引擎和django的文法還是比較相似的,於是我選擇了jinja作為我的模板引擎。
首先我到jinja的官網上下載了源碼包,並且進行了安裝。然後看了下官方的文檔,進行了簡單的一些功能的測試,為以後的開發做準備。
現在開始簡單的操作:
先在python裡面進行模板的啟動和賦值
env = Environment(loader=PackageLoader('mbtest', 'templates'))###mbtest是一個模組,裡面內容可以隨意寫,tempaltes是模板的檔案夾名,jinja模板可以操作模板的列表。
tpl = env.get_template('b2b-product.php')##模板名稱
randarticle = rand_article(randnum)
keyword = ‘test’
minfo = []
displayinfo = {'ptitle':ptitle,'pdescription':pdescription}##python有的時候可以把字典看做對象來操作。裡面的key就是對象的屬性,val則是對象的屬性值。
minfo.append(displayinfo)
tplcontent = tpl.render(minfo=minfo,keyword=keyword,randarticle=randarticle)##模板變數賦值
模板處理:
這裡只是簡單的進行模板的賦值,模板的迴圈輸出等。
tpl.render(minfo=minfo,keyword=k[1],randarticle=randarticle)
keyword在模板裡輸出是{{keyword}} 變數的格式都是{{}}
語句在模板裡面輸出是{% %} 都和django的文法比較相似,如果熟悉django的話,會感覺非常的親切。
{% for k in minfo %}
{{k.ptitle}}
{{k.pdescription}}
{% endfor %}
這個只是簡單的進行一些模板的操作,後續我會更新一些更加複雜的應用,你也可以參考一下官方的文檔