index_htmlを作る
shimizukawa
設定も終わったので、さっそくWebページの作成に入りましょう。
Webサイトを作るとき、おそらく一番最初に表示されるindex.htmlから書き始めるでしょう。Zopeでは IDには"."を含めない という慣例 [1] があるので、大抵は . の代わりに _ を使用します。このルールに従ういindex.htmlではなく index_html という名前でWebページを作ります。
| [1] | PythonやDTMLでは'.'を特別な意味で使用するため、'.'を含むIDを扱う場合に工夫が必要になります。最初のうちは無用なトラブルを避けるため、'.'を'_'に置き換えた方が良いでしょう。 |
既存のindex_htmlを削除して新しく作る
まずは、ZMIでルートフォルダを表示します。
http://localhost:8080/manage
Zopeインスタンスを作るとルートフォルダにindex_htmlという名前のオブジェクトがあります。このオブジェクトはインスタンス作成直後に http://localhost:8080/ にアクセスしたときに表示される Zope Quick Start ページのためにあります。ここではチュートリアルの都合上、一旦削除してください。
削除するには、index_htmlオブジェクトの左端にあるチェックボックスにチェックを入れ、ページ下端のDeleteボタンを押します。
次に、新しいindex_htmlを作ります。ワークエリアの右上のプルダウンメニューから DTML Document を選択・追加してください。ここで間違えてDTML Methodを選ばないようにしてください。DTML DocumentとDTML Methodの違いについては後述します。
DTML Document を追加するために、オブジェクトの名前などを求められますので、以下のように入力します。
| ID: | index_html |
|---|---|
| Title: | トップページ |
Titleはとりあえず'トップページ'としましたが、他の好きな文字列を入れてもかまいません。また、手元に作成済みのHTMLファイルがあれば、Fileフィールドを指定してファイルから読み込ませる事も出来ますが、今回はFileフィールドは空欄のままにしておきます。入力が終わったらすぐに編集するので Add and Edit ボタンを押してください。
index_htmlにHTMLを書く
それではindex_htmlを編集しましょう。既に編集用の画面が表示されているはずですが、先ほど Add ボタンを押してしまった場合はフォルダのオブジェクト一覧の画面に戻っていると思いますので、index_htmlをクリックして編集用の画面に移動します。
なにやらHTMLが書かれていますが、見慣れないタグ dtml-var が使われています。dtml-varについてはこのチュートリアルの後の方で使い方を説明しますので、とりあえずテキストエリアに書いてあるHTMLを全て消してしまいましょう。消したら代わりに以下のHTMLを入力してみてください:
<html>
<head>
<title>トップページ</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>トップページ</h1>
</body>
</html>
入力したら Save Changes ボタンをクリックして保存しましょう。
Note
metaタグで文字コードを指定しています。この指定を行わないと、一部のブラウザでは文字コードを正しく判別できず、文字化けの原因となってしまいます。
作成したWebページを表示する
それでは今作ったページを表示してみましょう。ワークエリアの上端にある View タブをクリックしてください。
あるいは、以下のURLでも今作ったページを表示することが出来ます:
http://localhost:8080/ http://localhost:8080/index_html
フォルダに index_html がある場合はZopeが自動的にそれを表示してくれます。このあたりはapacheやIISと同様の動作です。
これで、HTMLの表示を行うことが出来ました。ここまではユーザーインターフェース以外はそれほど特別な部分はありませんでしたが、まずはapacheなどのWebサーバーと違わない部分からZopeを使っていきましょう。Web上で操作できるという点以外は、ディレクトリがあり、DTML Documentというファイルのような物があり、そこにHTMLを書くということをまず理解してください。



