実践問題1 HTMLクラスの作成
問題
実際にプログラムとして使えるものを使っていきましょう
ここではHTMLクラスとHTMLクラスで動くプログラムを作成します
ファイルの最初には必ず
#!/usr/bin/env python
# -*- coding:euc_jp -*-とかいてください(windowsの場合はshift_jisで)
作成するタグは(p,h1,a,ol,ul,li,table,tr,td,dl,dd,dt)をつくってください
ヒント
- ファイル名はclass_HTML.pyとプログラム部分のファイル名はHTML_pro.pyとつけましょう
- HTML_pro.pyはclass_HTML.pyを読み込むのでform class_HTML.py import HTML とかいてください
- class_HTML.pyのクラス名はHTMLクラスだけを作ります
- HTMLクラスの中身は基本、HTMLモジュールを参考に設計していきます
- HTMLモジュールの図は乗せておきますので参考にしてください
- メソッド名はそのままhtmlのタグと同じ名前でつけましょう
- インラインタグはself.all で ブロックタグはreturnで変数をかえしなさい
- 引数の名前は自分でわかりやすく、できるだけ短いものにしましょう(名前空間には注意)
- HTMLのheadの部分は__init__に入れてしまいましょう
下の画像はヒントとなっています



解答例
下の画像は解答例です。できるまでは見ないようにしましょう。


実践問題2 作成したHTMファイルをknoppixで表示
問題
ここでは先ほど作ったkonppixでpyのファイルをHTMLに変換します。
ここからはknoppixで行ってください
ファイルのエンコードがEUCになっているかを確認してください。
knoppixで動かす場合エラーが発生します。
ヒント
- mystrtapacheを用意してください。
- 実践問題1で作った2つのファイルとmystartapacheが用意してください。
- まずシェルで作った2つのファイルmystartapacheを呼び出してください。
- 呼び出せたらスーパーユーザー(su)になって/mystartapaceをしてhomeにwwwとcgi-binを作ります。
- 作れたらsuからhomeに戻ったらファイルの属性を変えます。
- ファイルの属性の変え方は chmod x+w ファイル名 で変わります。
- 次にファイルの変換を行います。
- 変換の方法は、python ファイル名(例:index.py) > www / ファイル名(index.html)
- cd ファイル名 wwwとしてファイルをwwwのディレクトリに入れてください。(class_HTML.pyとHTML_pro.html)
- これができたらsetproxy proxy1.otani.ac.jpをしてfirefoxを開きます。
- firefoxで見る際には、ブラウザのアドレスの部分にlocalhost/ファイル名(ここではHTML_pro.html)
- 表示できない場合はemacs%を立ち上げて間違いがないか確認してください。
- 表示できるまで先にはすすまないでください。
実践問題3 CGIクラスの作成
問題
ここではHTMLクラスを継承してCGIクラスを作ります。
HTML_pro.htmlはHTML_pro.cgiにファイルを変えてしまいます。(変え方は問題2と同じです)
CGIクラスにはhtmlのフォーム(form)とインプットタイプ(input type)をつくります。
フォームはブロックタグなのでform_begin,form_endで分けましょう。
またCGIを使うのでCGIクラスの最初にimport cgi, cgitbを読み込ませましょう。
self.all = 'Content-type: text/html\n\n' + self.allも読み込ませるようにしましょう。
ヒント
HTMLの__init__部分を継承するためにCGIクラスの__init__部分でHTMLの引数を呼び出しましょう。
CGIクラスの__init__部分の最後にself.all = 'Content-type: text/html\n\n' + self.allをつけてください。
継承するクラスを使うのでHTML_pro.cgiのimportをCGIに変えるのを忘れずに
下の画像はヒントが乗っています。

実践問題4 CGIクラスを使っての四則計算サイトの作成
問題
ここでは先ほどつっくたCGIクラスをつくって四則計算ができるサイトを作ってみましょう。
ヒント
ここからはあまりヒントになる内容はあえて書かないようにします。
必要なプログラミングはヒントに載せておきます。
それをどう使うか考えて設計してください。




実践問題5 掲示板の作成
問題
これが最終問題となります。
ここでは掲示板クラスを設計します。
先ほどと同じようにここにはヒントだけのせてそのプログラムをどう使うか考えて設計してください。
掲示板にはどのような機能があるかを考えてクラスを設計してください。
これを考える事がオブジェクト指向つかう上でとても重要です。
最初にpythonのシェルでtouch bbs.dataとしてください。
これをしないと掲示板が動かなくなるので忘れずに
これで掲示板で書いたものを置く箱ができます。
先ほど作った四則計算サイトのクラスを使う事を継承する事で掲示板クラスを設計してください。
必要な材料はヒントに載せておきます。
ヒント








All Rights Reserved, Copyright(C) Suenaga Yuki 2007 graduation thesis