「クエリパラメータ」というのは、さまざまな情報をWebサーバーに伝えるために"URL"に付け加える情報。例えば。。。
http://localhost:8000/?msg=hello
みたいに、?以降についてる部分がクエリパラメータ。
?変数名=変数の値
パラメータが複数ある場合は「&」でつないでいく。
もそも「クエリ」とは?
そもそも「クエリ」というのは、検索をおこなう際の検索条件のことだ。
一般に、データベースや表で何らかの検索をおこなう場合は、「検索対象となる項目」と「検索キーワード」を指定する必要がある。
たとえば、Excelで作った社員名簿という表があると想像してほしい。社員の中から「鈴木」という「名字」の社員を検索したい場合は、「検索対象となる項目」に「名字」を指定し、「検索キーワード」に「鈴木」という文字列を指定する。この場合は、「名字=鈴木」というのがクエリということになる。
この「名字=鈴木」という検索をおこなう際の「名字」にあたるものことを「パラメータ(変数)」といい、一方、「鈴木」にあたる文字列のことを「パラメータ(変数)の値」という。
<引用文献>
impress, 「URLクエリパラメータ(クエリストリング)の意味とは。」, https://webtan.impress.co.jp/e/2012/04/26/12663 (2024年5月2日)
Djangoでクエリパラメータを使って、"Hello! World!"を表示させよう!
views.pyに次のコードを書いてみよう。
from Django.http import HttpResponse
def index(request):
msg = request.GET["msg"]
return HttpResponse(msg)
requestを引数に取っているが、このrequestとは?
そうです、HttpRequestというクラスのインスタンス。これは、クライアントがサーバにアクセスした際に、クライアント側の様々な情報を管理するもの。その中の、GETというのは、これは辞書的なもの。
Webブラウザでアクセスしてみよう!
python manage.py runserverで、ローカルサーバを立ち上げて、アドレスを次のように打とう。
http://localhost:8000/書いた場所のフォルダ/?msg=?msg=hello!%20World!
クエリパラメータをURLに含める際には、値をダブルクォーテーションで囲む必要はありません。クエリパラメータは単なるテキストだから親切心で囲わなくてもいい!ここで %20 は、スペースをURLエンコードしたもの。
結果がこれです!
↓↓↓