サーバの時刻を表示する

  • まずは認証なしでサーバの時刻を表示する。
  • コントローラ名はclock、アクション名はnowでいいでしょ。
$ paster controller clock
  • clock.py
import logging

from pylons import request, response, session, tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from myclock.lib.base import BaseController, render
import datetime

log = logging.getLogger(__name__)

class ClockController(BaseController):
    def now(self):
	c.title = 'My Clock'
	c.heading = 'Welcome!'
	c.content = "Current time is %s" % str(datetime.datetime.now())
	return render('/derived/clock/now.html')
  • テンプレートは一応階層構造にしておく。
    • /templates/base
    • /templates/derived/clock
    • /templates/derived/error
    • /templates/components
  • で、base/index.html
## -*- coding: utf-8 -*-

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>${self.title()}</title>
    ${self.head()}
</head>
<body>
    ${self.header()}
    ${self.heading()}
    ${next.body()}
</body>
</html>

<%def name="title()">My Clock</%def>
<%def name="head()"></%def>
<%def name="header()"><a name="top"></a></%def>
<%def name="heading()"><h1>${c.heading or 'My Clock'}</h1></%def>
  • 時刻を表示するderived/clock/now.html
<%inherit file="/base/index.html"/>
${c.content}
  • サーバ起動
paster serve --reload development.ini 
  • アプリにアクセス(http://サーバアドレス:5000/clock/now)


目次に戻る