表紙画像

WSGIウェブプログラミング

本書の記載内容について訂正があります。
こちらを参照してください。

本書について

 今や世の中にはウェブアプリケーションが溢れています。誰もが一度はそのサービスを利用したことがあるでしょう。しかしながら、プログラミング言語「Python」で記述されたウェブアプリケーションはそれほど多くありません。“日本ではまだまだ普及していないプログラミング言語”というのが大きな要因の1つだと思いますが、まさにそこがネックです。

 「ウェブアプリケーションの開発依頼が来たんだけど、どの言語で作ろうか?」と真剣に考えてみてください。ついつい情報やライブラリが豊富なJavaやPHPへ気持ちが流れてしまいませんか? ご自身がそれらの言語の経験者であれば尚更だと思います。
 しかし、Pythonは両者に劣らずライブラリが非常に豊富です。ソースコードも書きやすいですし、スクリプト言語というお手軽さも手伝って、欧米をはじめとした海外で人気が高いのも大変頷けます。そうすると足りないのは情報だけですよね。ここが私自身最も苦労した点です。Pythonを取り扱った書籍も少ないですし、インターネット上にもコアな情報がほとんどありません。四苦八苦しながら英文のサイトを閲覧し、少しずつ理解を深めていきましたが、やはり日本人である以上日本語の情報が少しでも増えればこれほどありがたいことはありません。

 本書は、Pythonとウェブサーバーとのインターフェース定義であるWSGIを利用したウェブプログラミングについてまとめています。まずは基本を習得し、自分なりに応用してウェブアプリケーションを作ってみてください。「意外と簡単に作れるな」と思うかもしれません。皆さんが「簡単に作れる」と思えるようにこの本が助けになれば幸いです。

電子書籍は下記のサイトからご購入できます


目 次

■正誤表■ 2013/5/9

本文の内容に誤りがありました。 お詫びして訂正いたします。

p.115 リスト5.18●index.wsgi(ディクショナリ使用)の中央部分

 template.test_data['test_data_1' ,'テストデータ1'  ]
 template.test_data['test_data_2' ,'テストデータ2'  ]
 template.test_data['test_data_3' ,'テストデータ3'  ]
 template.test_data['test_data_4' ,'テストデータ4'  ]
 template.test_data['test_data_5' ,'テストデータ5'  ]
 template.test_data['test_data_6' ,'テストデータ6'  ]
 template.test_data['test_data_7' ,'テストデータ7'  ]
 template.test_data['test_data_8' ,'テストデータ8'  ]
 template.test_data['test_data_9' ,'テストデータ9'  ]
 template.test_data['test_data_10','テストデータ10'] 
 template.test_data['test_data_1' ] = 'テストデータ1'
 template.test_data['test_data_2' ] = 'テストデータ2'
 template.test_data['test_data_3' ] = 'テストデータ3'
 template.test_data['test_data_4' ] = 'テストデータ4'
 template.test_data['test_data_5' ] = 'テストデータ5'
 template.test_data['test_data_6' ] = 'テストデータ6' 
 template.test_data['test_data_7' ] = 'テストデータ7'
 template.test_data['test_data_8' ] = 'テストデータ8'
 template.test_data['test_data_9' ] = 'テストデータ9'
 template.test_data['test_data_10'] = 'テストデータ10' 

p.139 リスト6.7●mailform_check.tmplの下から15行目

document.getElementById('navigation').value = '002';

idを付与していないinputタグに対してgetElementByIdでオブジェクトを取得しようとしており、'navigation'に対して正しい値を代入できていない。

document.form.navigation.value = '002';