Django URL転送パラメータの方法まとめ

4301 ワード

1パラメータがない場合
設定URLとそのビューは以下の通りです。
1
2
3
4
(r'^hello/$', hello)
 
def hello(request):
    return HttpResponse("Hello World")
アクセスhttp://127.0.0.1:8000/hello出力結果は「ハローワールド」です。
2つのパラメータ構成URLとそのビューを渡すと、URLに正則でパラメータを指定します。
1
2
3
4
(r'^plist/(.+)/$', helloParam)
 
def helloParam(request,param1):
    return HttpResponse("The param is : " + param1)
アクセスhttp://127.0.0.1:8000/plist/china出力結果は「The param is:china」です。
3複数のパラメータを伝達して第2の場合を参照して、2つのパラメータを伝達する例として、構成URLとそのビューは以下の通りであり、URLに正則によって2つのパラメータを指定する。
1
2
3
4
(r'^plist/p1(\w+)p2(.+)/$', helloParams)
 
def helloParams(request,param1,param2):
    return HttpResponse("p1 = " + param1 + "; p2 = " + param2)
アクセスhttp://127.0.0.1:8000/plist/p1chinap22012/ 出力は「p 1=china」です。p 2=2012〃
ここから分かるように、ビューのパラメータはURLの正則式に従って順番にマッチし、自動的に値が割り当てられている。任意の複数のパラメータの転送が可能ですが、フレキシブルではなく、URLが混乱しているように見えます。また、正規のマッチングなので、エラーが発生しやすい場合があります。
4伝統的な「?」伝達パラメータは、例えば、http://127.0.0.1:8000/plist/?p1=china&p2=2012をクリックしますその後は伝達のパラメータを表し、ここではp 1とp 2のパラメータを伝えます。
このようにパラメータを伝達することで、正則整合エラーによる問題が発生しなくなります。Djangoでは、このようなパラメータの解析は、request.GET.get法によって得られた。
設定URLとそのビューは以下の通りです。
1
2
3
4
5
6
(r'^plist/$', helloParams1)
 
def helloParams(request):
    p1 = request.GET.get('p1')
    p2 = request.GET.get('p2')
    return HttpResponse("p1 = " + p1 + "; p2 = " + p2)
出力結果は「p 1=china」です。p 2=2012〃
オリジナル記事、転載はアンの個人ブログ[http://www.icodelogic.com]本記事からのリンク先を明記してください。  http://www.icodelogic.com/?p=501