[Django]クエリパラメータを使用する

### クエリパラメータを記述する
クエリパラメータとはアドレスの後につけて記述するパラメータの事
e.g. http://hoge.com/hello/index?xxx=yyyy&zzz=aaa… など

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
	msg = request.GET['msg']
	return HttpResponse('you typed : "' + msg +'".')

– request.GET[‘&{param}’]でGETパラメータを取り出す。
– リクエストはHttpRequestクラスを使用し、レスポンスはHttpResponseクラスを使用する

### クエリパラメータがない時
MultiValueDictKeyErrorになるので、views.pyでmsgがない時の処理を追加する

/hello/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
	if 'msg' in request.GET:
		msg = request.GET['msg']
		result = 'you typed : "' + msg +'".'
	else:
		result = 'please send msg parameter!'
	return HttpResponse(result)

– GETプロパティに設定されている値はQueryDictというクラスのインスタンス

### クエリパラメーターをスラッシュ(“/”)に変更する
/hello/urls.py

urlpatterns = [ 
	path('<int:id>/<nickname>', views.index, name='index'),
]

/hello/views.py

def index(request, id, nickname):
	result = 'your id: ' + str(id) + ', name: "' \
		+ nickname + '".'
	return HttpResponse(result)

– 文末のバックスラッシュ(“\”)は見かけの改行