import os「os」は、osの機能を利用するもので、ここではファイルのパスを取得するのに使っています。もう1つのgoogle.appengine.ext.webappにある「template」が、テンプレートの機能です。これを読み込むことで、テンプレートの機能が使えるようになります。
from google.appengine.ext.webapp import template
fpath = os.path.join(os.path.dirname(__file__),'views','home.html')「os.path.join」は、ベースとなる第1引数のパスに、第2引数のフォルダ内にある第3引数のファイルを付け足したパスを取得するものです。os.path.dirname(__file__)は、このWebアプリケーションのパスを返すものです。これにより、Webアプリケーションの「views」フォルダ内にある「home.html」ファイルのパスを変数fpathに取り出しているわけです。
html = template.render(fpath,params)そして、templateの「render」メソッドを使い、第1引数に指定したパスのテンプレートファイルを読み込み、レンダリング処理をしています。処理して生成されたHTMLソースコードは、変数htmlに保管されます。
str = '日本語だよ'.decode('utf-8')このように文字コードを指定してデコードすることで正しい文字コードでテキストを扱うことができます。が、いちいちこれをやるのがめんどうだという場合は、スクリプトのはじめに、
# -*- coding: utf-8 -*-このように記述してください。これで、指定の文字コードで扱われるようになります。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
import os from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext.webapp import template class MainPage(webapp.RequestHandler): def get(self): params = {'message':'これは、テンプレートで出力したWebページです。'} fpath = os.path.join(os.path.dirname(__file__),'views','home.html') html = template.render(fpath,params) self.response.headers['Content-Type'] = 'text/html' self.response.out.write(html) application = webapp.WSGIApplication([('/', MainPage)], debug=True) def main(): run_wsgi_app(application) if __name__ == "__main__": main()
<< 前へ | 次へ >> |