Advanced Server-side ProgrammingシリーズWebアプリケーションサーバ ZOPEパーフェクトガイド

[表紙]Webアプリケーションサーバ ZOPEパーフェクトガイド

紙版発売

B5変形判/416ページ

定価3,608円(本体3,280円+税10%)

ISBN 4-7741-1648-3

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

今話題のオープンソースソフトウェア「Zope」は,PythonベースのWebアプリケーションサーバです。本書はドイツと米国で好評を博した『THE BOOK of ZOPE』の翻訳本で,アプリケーションサーバ初心者でもZopeを導入/活用できるよう,丁寧に解説されています。日本Zopeユーザ会の桜井通開氏が日本語版の監訳を行っています。

こんな方におすすめ

  • Pythonユーザ
  • CGIを卒業したい方
  • コンテンツ管理を根本から変えたいと思っているWebサイト管理者

目次

Chapter 1 ZOPEの基礎

  • 1.1 Webアプリケーション
    • 1.1.1 WebアプリケーションプログラマにとってのZopeの利点
  • 1.2 WebアプリケーションサーバとしてのZope
    • 1.2.1 ロールによるコンテンツ
    • 1.2.2 SQL(Structured Query Language)
    • 1.2.3 Python
  • 1.3 コンテンツ管理サーバとしてのZope
    • 1.3.1 オープンソースソフトウェア
  • 1.4 技術的要件
    • 1.4.1 ハードウェア要件
  • 1.5 インストール
    • 1.5.1 Windows
    • 1.5.2 Windows NT
    • 1.5.3 Linux

Chapter 2 クイックスタート

  • 2.1 準備
    • 2.1.1 ユーザアカウントの作成
  • 2.2 Zopeのインターフェース:管理画面
    • 2.2.1 管理画面の左フレーム
    • 2.2.2 管理画面の右フレーム
  • 2.3 Zopeオブジェクト
    • 2.3.1 Zopeとオブジェクト指向プログラミング
    • 2.3.2 フォルダの作成
    • 2.3.3 ファイルの作成
    • 2.3.4 DTMLドキュメントおよびメソッド
    • 2.3.5 DTMLドキュメントの作成
    • 2.3.6 DTMLメソッドの作成
  • 2.4 オブジェクトの管理
    • 2.4.1 オブジェクトIdの変更
    • 2.4.2 オブジェクトタイトルの変更
    • 2.4.3 オブジェクトのコピー
    • 2.4.4 オブジェクトの削除
    • 2.4.5 オブジェクトの移動
  • 2.5 獲得と標準オブジェクト
    • 2.5.1 標準オブジェクト

Chapter 3 ZOPEのナビゲーション

  • 3.1 Zopeのタブバー
    • 3.1.1 [Contents]タブ
    • 3.1.2 [Edit]タブと[Edit]画面
    • 3.1.3 [View]タブ
    • 3.1.4 [Ownership]タブ
    • 3.1.5 [Histrory]タブ
    • 3.1.6 [Properties]タブ
    • 3.1.7 [Undo]タブ
    • 3.1.8 [Find]タブ
    • 3.1.9 [Import/Export]タブ
  • 3.2 [Help]ボタン
    • 3.2.1 [Contents]
    • 3.2.2 [Search]
  • 3.3 [Control Panel]
    • 3.3.1 [Shutdown]
    • 3.3.2 [Restart]
    • 3.3.3 データベース管理画面
    • 3.3.4 圧縮によるZopeデータベースの管理
    • 3.3.5 保存したData.fsファイルの復元
    • 3.3.6 別のZopeサーバへのデータベースのコピー
    • 3.3.7 バージョン管理
    • 3.3.8 プロダクト管理
    • 3.3.9 デバッグ情報

Chapter 4 DTML

  • 4.1 必須事項
    • 4.1.1 第1,第2,第3階層
    • 4.1.2 変数
    • 4.1.3 DTML名前空間
  • 4.2 DTML構文
    • 4.2.1 空タグと非空タグ
    • 4.2.2 古いDTML構文
    • 4.2.3 属性の省略化
  • 4.3 DTMLタグ,変数および属性の使用
    • 4.3.1 Varタグ
    • 4.3.2 名前空間変数
    • 4.3.3 Web経由のクライアント/サーバ通信
    • 4.3.4 callタグ
    • 4.3.5 ifタグ
    • 4.3.6 elifタグ
    • 4.3.7 unlessタグ
    • 4.3.8 withタグ
    • 4.3.9 letタグ
    • 4.3.10 inタグ
    • 4.3.11 treeタグ
    • 4.3.12 sendmailタグ
    • 4.3.13 MIMEタグとboundaryタグ
    • 4.3.14 commentタグ
    • 4.3.15 tryタグとexceptタグ
    • 4.3.16 finallyタグ
    • 4.3.17 raiseタグ
    • 4.3.18 returnタグ

Chapter 5 ZOPEバージョン

  • 5.1 バージョンの作成
  • 5.2 バージョンの開始と終了
  • 5.3 バージョン内での作業
    • 5.3.1 オブジェクトの更新
    • 5.3.2 [Control Panel]を使用した変更内容の保存と破棄
  • 5.4 バージョンの削除
  • 5.5 複数バージョンを使用した作業
  • 5.6 例

Chapter 6 ユーザ,ロール,セキュリティ

  • 6.1 Zopeのセキュリティの構造
    • 6.1.1 ユーザロール
    • 6.1.2 Zopeのロール:Anonymous,Manager,Owner
    • 6.1.3 ロールの割り当てと作成
    • 6.1.4 獲得を利用した許可の割り当て
    • 6.1.5 Ownership
  • 6.2 ユーザの管理
    • 6.2.1 ユーザの作成
    • 6.2.2 ユーザの修正
    • 6.2.3 新しいロールの作成
  • 6.3 DTMLにおけるユーザの管理
    • 6.3.1 DTMLにおけるユーザの作成
    • 6.3.2 DTML内でユーザを作成するときの問題
    • 6.3.3 DTMLにおけるユーザの変更
    • 6.3.4 DTMLにおけるユーザの削除
    • 6.3.5 ユーザフォルダメソッド

Chapter 7 ローカルロールと許可

  • 7.1 ローカルロール
    • 7.1.1 例
  • 7.2 プロキシロール
  • 7.3 許可
    • 7.3.1 非フォルダ風オブジェクトの許可
    • 7.3.2 フォルダ風オブジェクトについての許可

Chapter 8 ROLE.PYモジュールとUSER.PYモジュールのメソッド

  • 8.1 メソッドの呼び出し
  • 8.2 モジュールRole.pyのメソッド
    • 8.2.1 User.pyモジュールのメソッド
  • 8.3 例:認証
    • 8.3.1 DTMLメソッドlogin_html
    • 8.3.2 DTMLドキュメントindex_html
    • 8.3.3 index_htmlの2つのビュー
    • 8.3.4 login_htmlへの許可の割り当て

Chapter 9 ZClass

  • 9.1 ZClassを使用する理由
    • 9.1.1 ZClassアプリケーションの例:書店
  • 9.2 クラスとオブジェクト
    • 9.2.1 ZClassの作成
    • 9.2.2 例:CarClass
    • 9.2.3 Id番号
    • 9.2.4 プロパティシート
  • 9.3 ZClassの作成
    • 9.3.1 プロダクトの作成
    • 9.3.2 プロダクトへのZClassの追加
    • 9.3.3 [Create Constructor Object?]チェックボックス
    • 9.3.4 ZClassの情報の変更
    • 9.3.5 基本クラスとそのビュー
    • 9.3.6 プロパティシートとプロパティの作成
    • 9.3.7 selectionプロパティ,multiple selectionプロパティの作成
    • 9.3.8 ビューの作成
    • 9.3.9 ヘルプトピックの作成
    • 9.3.10 プロパティの編集

Chapter 10 ZClassの使用

  • 10.1 コンストラクタメソッドの修正
    • 10.1.1 DTMLメソッドの修正
    • 10.1.2 ZClassによるオブジェクトの作成
    • 10.1.3 BookクラスのFactory
  • 10.2 ブックストアの運営
  • 10.3 Bookオブジェクトを編集する2つの方法
    • 10.3.1 管理画面によるBooksフォルダでの作業
    • 10.3.2 管理用インターフェースによる作業
    • 10.3.3 Admin_html DTMLメソッド
  • 10.4 本の販売
    • 10.4.1 index_htmlの作成
    • 10.4.2 本を注文するためのDTMLメソッドの作成
    • 10.4.3 注文の送信
  • 10.5 Zopeプロダクトを拡張するアイデア

Chapter 11 ZCatalog

  • 11.1 ZCatalogの作成
    • 11.1.1 Vocabularyの選択
    • 11.1.2 グロビング
  • 11.2 ZCatalog画面
    • 11.2.1 [Contents]画面
    • 11.2.2 [Catalog]画面
    • 11.2.3 [Find Objects]画面
    • 11.2.4 [Metadata]画面
    • 11.2.5 [Indexes]画面
    • 11.2.6 [Advanced]画面
  • 11.3 Z検索インターフェース
    • 11.3.1 検索用ページ
    • 11.3.2 結果用ページ
  • 11.4 ZCatalogクエリ
    • 11.4.1 フォームからのZCatalogへのクエリ
    • 11.4.2 カタログbrain
    • 11.4.3 ZCatalogへの直接のクエリ
  • 11.5 Vocablary
    • 11.5.1 [Vocablary]画面
    • 11.5.2 Vocablaryの検索
    • 11.5.3 insert()メソッドとmanage_insert()メソッドによるVocabularyの拡張
    • 11.5.4 特殊な文字によるZCatalog

Chapter 12 ZopeとMySQL

  • 12.1 ZODBと外部データベースのどちらがよいか?
  • 12.2 RDMBS
  • 12.3 MySQLデータベース
    • 12.3.1 MySQLモニタの起動
    • 12.3.2 MySQLモニタを使用したデータベースの作成
    • 12.3.3 MySQLモニタによるユーザデータテーブルの作成
    • 12.3.4 データベースアダプタZMySQLDAのインストール
    • 12.3.5 ZopeでのZ MySQL接続の確立
    • 12.3.6 データベースへのSQLクリエのテスト
  • 12.4 Zopeによるユーザデータのテーブルへの入力
    • 12.4.1 userAddForm_htmlメソッド
    • 12.4.2 userAdd_htmlメソッド
    • 12.4.3 userInsert_sqlメソッド
    • 12.4.4 SQLメソッドのテスト
  • 12.5 Zopeによるデータベースへのクエリ
    • 12.5.1 検索用SQLメソッドの作成
    • 12.5.2 sqltestタグ
    • 12.5.3 sqlvarタグ
  • 12.6 検索インターフェースの作成
    • 12.6.1 検索用入力画面の作成

Chapter 13 Zopeのプログラミング:Python既説

  • 13.1 データ型
    • 13.1.1 数値型
    • 13.1.2 シーケンシャル型
    • 13.1.3 None
  • 13.2 演算子
  • 13.3 変数と代入
  • 13.4 字下げ
  • 13.5 クラスとメソッド
    • 13.5.1 例:クラスの作成

Chapter 14 PythonによるZopeのスクリプティング

  • 14.1 ZopeのPythonスクリプト
    • 14.1.1 Pythonスクリプトの作成
    • 14.1.2 [Edit]管理画面
    • 14.1.3 [Bindings]管理画面
    • 14.1.4 [Test]管理画面
    • 14.1.5 Pythonスクリプトへのモジュールのインポート
    • 14.1.6 DTMLからのPythonスクリプトの呼び出し
    • 14.1.7 例:Zope Pythonスクリプトの作成
    • 14.1.8 DTMLからのスクリプトの使用
  • 14.2 外部メソッド
    • 14.2.1 外部メソッドの作成
    • 14.2.2 DTMLによるPythonメソッドへのアクセス
    • 14.2.3 例:外部メソッドの作成
    • 14.2.4 Zopeでの外部メソッドオブジェクトの作成
    • 14.2.5 外部メソッドの作成のまとめ
  • 14.3 外部メソッドを使用したロールと許可の変更
    • 14.3.1 複数のロールの許可の変更
    • 14.3.2 permission_settings()
    • 14.3.3 permissionメソッドの順を追った説明
    • 14.3.4 permissions.pyメソッド
    • 14.3.5 createUser()メソッド

Chapter 15 Zopeプロダクト

  • 15.1 オブジェクトの作成用のツール
  • 15.2 プロダクトの構築
  • 15.2.1 プロダクトのブートストラップ
    • 15.2.2 必要なコンポーネント
    • 15.2.3 ユーザ構造
    • 15.2.4 ロール/許可構造
  • 15.3 プロダクト構築の概要
    • 15.3.1 おもなコンポーネント
    • 15.3.2 サポートファイル
    • 15.3.3 まとめ
  • 15.4 Websiteプロダクトの作成
    • 15.4.1 プロダクトディレクトリノ作成
    • 15.4.2 メインモジュール:Website.py
    • 15.4.3 コンストラクタフォームの定義
    • 15.4.4 メインモジュールのコンストラクタメソッド
    • 15.4.5 _init_.pyファイルの作成

Chapter 16 デバッグ

  • 16.1 Zopeサーバの起動時のエラー
  • 16.2 PythonおよびDTMLのエラー
    • 16.2.1 二分探索法
    • 16.2.2 防衛的コーディング
    • 16.2.3 間欠的エラー
    • 16.2.4 標準のPythonエラーメッセージ
    • 16.2.5 DTMLエラーメッセージ
    • 16.2.6 デバッグモード
  • 16.3 Zope固有のエラー
    • 16.3.1 Zopeエラーメッセージ

Chapter 17 外部データへのアクセス

  • 17.1 FTP
    • 17.1.1 グラフィカルFTPクライアントの使用
  • 17.2 WebDAV
    • 17.2.1 LinuxおよびUNIX用のWebDAV
  • 17.3 XML-RPC

Appendix A DTMLと組み込み属性

Appendix B REQESTオブジェクト

Appendix C Websiteプロダクトのソースコード

Appendix D ZCATALOGモジュールのメソッド

Appendix E 監修者による追記

Appendix F 用語集