Google App Engine 初學(4) - Template

Google App Engine 初學, 此篇主要是 GAE 將程式部份 與 Template 部份分離, 並寫個簡單的程式測試, 將程式上傳到 GAE 上.

註: 可想成將程式拆分成 Contoller 與 View (Template).

使用 Template

  • 將 資料 與 HTML 分開. (目前 GAE 使用的是 django 0.96 版的 template 系統)
  • 使用 Template 是由此段程式來指定要讀取哪個 Html 檔

    import os
    from google.appengine.ext.webapp import template
    template_path = os.path.join(os.path.dirname(__file__), 'template.html')

範例

  1. vim app.yaml # 於 app.yaml 加上 template.py

    handlers:
    - url: /template
      script: template.py

  2. vim template.py

    # -*- coding: utf-8 -*-
    import cgi
    import os
    from google.appengine.ext.webapp import template

    form  = cgi.FieldStorage()
    name = form.getvalue('name', '')
    email = form.getvalue('email', '')

    template_path = os.path.join(os.path.dirname(__file__), 'template.html')

    print 'Content-Type: text/html; charset=utf-8'
    print template.render(template_path, {'name': name, 'email': email})

  3. vim template.html

    <html>
    <head></head>
    <body>
    <form method="post">
        Name <input type="text" name="name" value=""><br>
        Email <input type="text" name="email" value=""><br>
        <input type="submit" value="post">
    <form>

    <p>Name: {{name}}</p>
    <p>Email: {{email}}</p>
    </body>
    </html>

測試

  1. /var/gae/dev_appserver.py hello # 啟動
  2. http://localhost:8080/template # 看到測試頁, 並測試 Post 看看

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料