Djangoビューではrequest.GET['variablename']
、にアクセスできるため、ビューでは次のようなことができます。
myvar = request.GET['myvar']
実際のrequest.GET['myvar']
オブジェクトタイプは次のとおりです。
<class 'django.http.QueryDict'>
ここで、同じパラメーター名を持つ複数の変数を渡したい場合、つまり:
http://example.com/blah/?myvar=123&myvar=567
list
パラメータに対してPythonを返したいmyvar
場合は、次のようにします。
for var in request.GET['myvar']:
print(var)
ただし、URLで渡された最後の値のみを取得しようとすると、つまり上記の例では567が取得され、シェルの結果は次のようになります。
5
6
7
ただし、印刷request.GET
すると、次のようになりますlist
。
<QueryDict: {u'myvar': [u'123', u'567']}>
更新:最後の値を返すように設計されています。私のユースケースはリストが必要です。
djangoドキュメントから:
QueryDict。getitem(key)指定されたキーの値を返します。キーに複数の値がある場合、 getitem()は最後の値を返します。キーが存在しない場合、django.utils.datastructures.MultiValueDictKeyErrorを発生させます。(これはPythonの標準KeyErrorのサブクラスであるため、KeyErrorのキャッチに固執することができます
QueryDict.getlist(key)要求されたキーを含むデータをPythonリストとして返します。キーが存在しない場合は、空のリストを返します。ある種のリストを返すことが保証されています。
更新:django devがこれを行った理由を誰かが知っている場合は、私に知らせてください。リストを表示するのは直感に反しているようで、リストのようには動作しません。あまりパイソンではありません!