網頁樣板

GAE使用了Django 範本來實現網頁樣板的功能。
網頁樣板使用網頁內容並加上特殊語法來顯示程式中的資料。


要使用樣板首先必須引入以下內容:

import os
from google.appengine.ext.webapp import template

之後建立一份html檔案。

read.html 檔案:

<html>
  <head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
  </head>
  <body>
    {% if user %}
      <form action="{{ url }}" method="get">
        <div><input type="submit" value="edit page"></div>
      </form>
    {% endif %}
    {% for greeting in greetings %}
      {% if greeting.author %}
        <b>{{ greeting.name }}</b> wrote:
      {% else %}
       An anonymous person wrote:
      {% endif %}
      <blockquote>{{ greeting.content|escape }}</blockquote>
    {% endfor %}
  </body>
</html>

接下來就是在程式中處理樣板的資料了。
在原來的方法中加入以下程式碼:

class Reader(webapp.RequestHandler):
  def get(self,username):
    #...
    user = users.get_current_user()
    template_values = { 
      'greetings': greetings,
      'user' : user and user.nickname() == username,
      'url': '/edit/' + username,
      'url_linktext': 'edit',
    }
 
    path = os.path.join(os.path.dirname(__file__), 'read.html')
    self.response.out.write(template.render(path, template_values))

將所有樣板中會使用到的變數放入一個字典物件中並以對應的變數名稱為key值。
再將此字典物件作為參數呼叫樣板功能。如此網頁便會依照樣板的內容及程式的資料來做變化了。