4.7 HTML Templates

有趣的 tag: marquee 跑馬燈

HiddenInputs

  • 用戶看不到

  • hardcodedvalue

  • 指的是value="eggs"這一段

  • 兩個name都設一樣

  • food=eggs,這一段可以叫做 hidden elements in the URL

ShoppingListTakeOne-較麻煩

說明說明2較好方法-用Template

目標:創造shopping_list_html、hidden_html、item_html(要塞到shopping_html內的),把他們當作會遞增的元件,最終把元件遞加到整個要呈現的頁面

  • items=self.request.get_all("food")

  • get_all會抓所有get和post的parameter

  • 下方有介紹

  • 下面建的item是for迴圈創造的變數

  • item用來替換%s

  • output的值

  • 下半頁:output_items要加進output_shppping

  • 上半頁:output_hidden最後再加進去

IntroducingTemplate

  • Atemplate library which to build complicated strings(Webapplication裡通常是HTML)

  • 這裡要介紹的 templatelibrary 是 jinja2

  • 原因

  • 運行在googleappengine

  • 東西多

  • 容易學

  • 輸入HTML,會轉成語法(有避免的方法)

  • 可以用pipeescape(|escape)

  • 或是在jinja.env加參數autoescape=True

  • |safe的意義

  • http://jinja.pocoo.org/

  • yaml裡要加libraries的name和version

  • importjinja2

  • template_dir=os.path.join(os.path.dirname(__file__),"templates")

  • #連接兩個檔案

  • jinja_env=jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir))

  • 設定環境

VariableSubstitution-jinja2

name="steve"除了影響有兩個米字的預留變數外,兩個藍色的框框也有影響

  • 要注意shopping_template.html放的位置,跟code裡的路徑(template_dir)有關

  • 說明

  • 語法

最後使用get,會有qparameter,可以在URL輸入?name=jeffrey測試

Jinja2語法-都是用在HTML

把python的語法套到HTML,很神奇

StatementSyntax說明下有語法說明

ForLoopSyntax說明

  • x**2

  • 平方的寫法

TemplateInheritance-說明

當版型一樣的時候,真的只能複製貼上?

創建一個base.html,讓他繼承別的頁面

被繼承的頁面

{%extend "base.html"%}

results matching ""

    No results matching ""