ホームページ >バックエンド開発 >Python チュートリアル >Django URLでパラメータを渡す方法

Django URLでパラメータを渡す方法

高洛峰
高洛峰オリジナル
2017-02-27 16:54:402192ブラウズ

1 パラメータなし

設定URLとそのビューは次のとおりです:

(r'^hello/$', hello)
 
def hello(request):
  return HttpResponse("Hello World")

http://127.0.0.1:8000/helloにアクセス、出力結果は「Hello World」です

2 aを渡しますパラメータ
設定 URL とそのビューは次のとおりです。パラメータは正規表現で URL に指定されます:

(r'^plist/(.+)/$', helloParam)
 
def helloParam(request,param1):
  return HttpResponse("The param is : " + param1)

http://127.0.0.1:8000/plist/china にアクセスすると、出力結果は "パラメータは次のとおりです: china"

3 複数のパラメータを渡す
2 つのパラメータを渡すことを例として、2 番目のケースを参照してください。設定 URL とそのビューは次のとおりです。2 つのパラメータは正規表現を使用して URL に指定されます:

(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/出力は「p1 = china; p2 = 2012」です

ここから、ビューのパラメータが順番に一致していることがわかりますURL の正規表現に従って自動的に割り当てられます。これにより、任意の数のパラメータを転送できますが、柔軟性が不十分であり、URL は通常の一致であるため、場合によってはエラーが発生しやすくなります。

4 従来の「?」を介してパラメータを渡します

たとえば、http://127.0.0.1:8000/plist/?p1=china&p2=2012、URL 内の「?」は渡されるパラメータを表し、ここでは p1 とp2 2 つのパラメータ。

このようにパラメータを渡すことで、通常のマッチングエラーによる問題は発生しません。 Django では、このようなパラメーターの解析は request.GET.get メソッドを通じて取得されます。

URL とそのビューを次のように設定します:

(r'^plist/$', helloParams1)
 
def helloParams(request):
  p1 = request.GET.get('p1')
  p2 = request.GET.get('p2')
  return HttpResponse("p1 = " + p1 + "; p2 = " + p2)

出力結果は「p1 = china; p2 = 2012」です

Django URL でパラメータを渡す方法に関連するその他の記事については、注目してください。 PHP中国語ウェブサイトへ!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。