ユーザーから値を受け取るにはさまざまな方法があります。もっとも簡単なのは、「URLに必要な値をつけてアクセスする」というやり方でしょう。
AmazonやGoogleなどのサイトにアクセスすると、URLの後に「……?○○=××&○○=××&……」というように、なんだかよくわからない記号のようなものがずらずらと記述されているのを見ることがあります。あれは「
クエリーパラメータ」と呼ばれるもので、アドレスのURLに必要な情報を付けてサーバーに送信する手法です。
このクエリーパラメータはどうやって受け取って利用するのでしょうか。やってみましょう。「hello」内の
views.pyを開き、
index関数を下のリスト欄のように修正して下さい。そして、以下のような形でアクセスをしてみましょう。
http://localhost:8000/hello/?name=taro
これで、画面には、「こんにちは、taroさん。と表示されます。ここでは、
?name=taroというようにクエリーパラメータがつけられています。これで、
nameというキー(名前)に「
taro」という値が設定されて送られます。
この送られた値は、
index関数の引数で渡される
HttpRequestの
GETというプロパティでとりだせます。この
GETは辞書になっており、クエリーに渡されたパラメータがまとめられているのです。つまり、
nameというキーの値ならば、
GET['name']として取り出すことができるのです。
ここでの処理を見てみましょう。indexでは、以下のような形でif文が用意されています。
if "name" in request.GET:
……nameがある場合の処理……
else:
……nameがない場合の処理……
"name" in request.GET で、
request.GETの中に
nameという値があるかどうかチェックしています。もしあった場合は、その値を変数に取り出しています。
name_str = request.GET['name']
後は、この値を使って必要な処理をしていくだけです。クエリーパラメータの利用は意外に簡単なのです。