忍者ブログ
     2008年11月14日 開始
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

#!/usr/bin/env python
# coding: utf-8
import cgi
from datetime import datetime

html_body = u"""
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"
</head>
<body>
%s
</body>
</html>"""

content=''

form=cgi.FieldStorage()
year_str=form.getvalue('year', '')
if not year_str.isdigit():
    content=u"西暦を入力してください"
else:
    year=int(year_str)
    friday13=0
#なんで1~13なの?
 for month in range(1,13):
        date=datetime(year, month, 13)
#月曜日が0になるんだね
        if date.weekday()==4:
            friday13+=1
            content+=u"%d年%d月13日は金曜日です" % (year, date.month)
            content+=u"<br />"

#if fri13:---なにが「真」でなにが「偽」なのかな
    if friday13:
        content+=u"%d年には合計%d日の金曜日があります" % (year, friday13)
    else:
        content+=u"%d年には13日の金曜日がありません"
           
#なんでprint文がHTMLに表示されるの???     
print "Content-type: text/html;charset=utf-8\n"
print (html_body % content).encode('utf-8')
 

PR

#!/usr/local/bin/python
# coding: utf-8
## verticalize.py

import cgi
form=cgi.FieldStorage()

html_body = u"""
<html>
  <head>
    <meta http-equiv="content-type"
          content="text/html;charset=utf-8" />
  </head>
  <body>
  %s
  </body>
</html>"""

body_line=[]
body=form.getvalue('body', '')
## unicode()の3つ目の引数'ignore'の意味は?
body=unicode(body, 'utf-8', 'ignore')
for cnt in range(0, len(body), 10):
    line=body[:10]
    line+=''.join(['□' for i in range(len(line), 10)])
    body_line.append(line)
    body=body[10:]
## zip(*body_line) 多次元配列のシーケンスの組み換え(行・列をいれかえる)
## アスタリスク(*)の意味がわかんない
body_line_v=[' '.join(reversed(x)) for x in zip(*body_line)]

print "Content-type: text/html\n"
## 次の行の% の扱いがわかんない
## '<br />'.join(body_line_v) ・・・この意味は確か
## '<br />'の後ろにbody_line_vをjoinするはずだね
print html_body % '<br />'.join(body_line_v)

 

#!/usr/local/bin/python
# coding: utf-8

## httphandler.py

# 標準モジュールをimportする
import cgi
import os

class Request(object):
    """
    HTTPのリクエストをハンドリングするクラス
    CGI側でインスタンスを生成することによって利用する
    クエリデータや環境変数へのアクセス,主要ヘッダへのアクセス用メソッドを提供
    """

    def __init__(self, environ=os.environ):
        """
        インスタンスの初期化メソッド
        クエリ,環境変数をアトリビュートとして保持する
        """
        self.form=cgi.FieldStorage()
        self.environ=environ

import time

_weekdayname = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
_monthname = [None,
              "Jan", "Feb", "Mar", "Apr", "May", "Jun",
              "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

class Response(object):
    """
    HTTPのレスポンスをハンドリングするクラス
    レスポンスを送る前にインスタンスを生成して利用する
    レスポンスやヘッダの内容の保持,ヘッダを含めたレスポンスの送信を行う
    """

    def __init__(self, charset='utf-8'):
        """
        インスタンスの初期化メソッド
        ヘッダ用の辞書,本文用の文字列などを初期化する
        """
        self.headers={'Content-type':'text/html;charset=%s' % charset}
        self.body=""

    def set_header(self, name, value):
        """
        レスポンスのヘッダを設定する
        """
        self.headers[name]=value

    def get_header(self, name):
        """
        設定済みのレスポンス用ヘッダを返す
        """
        return self.headers.get(name, None)

    def set_body(self, bodystr):
        """
        レスポンスとして出力する本文の文字列を返す
        """
        self.body=bodystr

    def make_output(self, timestamp=None):
        """
        ヘッダと本文を含めたレスポンス文字列を作る
        """
        if timestamp is None:
            timestamp = time.time()
        year, month, day, hh, mm, ss, wd, y, z = time.gmtime(timestamp)
        dtstr="%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
            _weekdayname[wd], day, _monthname[month], year, hh, mm, ss)
        self.set_header("Last-Modified", dtstr)
        headers='\n'.join(["%s: %s" % (k, v)
                        for k,v in self.headers.items()])
        return headers+'\n\n'+self.body
    ## __str__(self)は特殊メソッド
    def __str__(self):
        """
        リクエストを文字列に変換する
        """
        return self.make_output().encode('utf-8')

def get_htmltemplate():
    """
    レスポンスとして返すHTMLのうち,定型部分を返す
    """
    html_body = u"""
    <html>
      <head>
        <meta http-equiv="content-type"
              content="text/html;charset=utf-8" />
      </head>
      <body>
      %s
      </body>
    </html>"""
    return html_body




忍者ブログ [PR]
お天気情報
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
リンク
フリーエリア
最新CM
最新TB
プロフィール
HN:
No Name Ninja
性別:
非公開
バーコード
ブログ内検索
P R
カウンター
ブログの評価 ブログレーダー