Guestbook.cpy


ゲストブックの表示部分です。


use MyPage

import guestbook
import cgi

CherryClass Guestbook(MyPage):
variable:
    data = guestbook.Guestbook() # Guestbookの新規インスタンス
function:
    def viewGuestbook(self):
        out = ''
        for record in self.data.list():
            out += "<b>%s - %s</b><br>%s<br><br>" % (
                cgi.escape(record['name']), #HTMLをエスケープ
                cgi.escape(record['date']),
                cgi.escape(record['comment']))
        return out
view:
    def addFormSubmit(self, name, comment):
        self.data.add(name, comment)
        return self.redirect('index')

mask:
    def index(self):
        <py-eval="self.header('ゲストブック')">
        <py-eval="self.viewGuestbook()">
        <center><a href="addForm">メッセージを投稿する</a></center>
        <py-eval="self.footer()">
    def addForm(self):
        <py-eval="self.header('メッセージ投稿')">
        <form action="addFormSubmit" method="post">
        名前: <input type="text" name="name"><br>
        コメント:<br>
        <textarea rows=5 cols=40 name="comment"></textarea><br>
        <input type="submit" value="投稿する">
        </form>
        <py-eval="self.footer()">

各入力値をcgi.escapeでタグなどをエスケープしてから表示しています。