Home  >  Article  >  Backend Development  >  How to pass parameters in Django URL

How to pass parameters in Django URL

高洛峰
高洛峰Original
2017-02-27 16:54:402081browse

1 No parameters

The configuration URL and its view are as follows:

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

Visit http://127.0.0.1 :8000/hello, the output result is "Hello World"

2 Pass a parameter
Configure the URL and its view as follows, specify a parameter in the URL through regular expression:

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

Visit http://127.0.0.1:8000/plist/china, the output result is "The param is : china"

3 Pass multiple parameters
Refer to Chapter In the second case, take passing two parameters as an example. The configuration URL and its view are as follows. Two parameters are specified in the URL through regular expressions:

(r'^plist/p1(\w+)p2(.+)/$', helloParams)
 
def helloParams(request,param1,param2):
  return HttpResponse("p1 = " + param1 + "; p2 = " + param2)

Access http: //127.0.0.1:8000/plist/p1chinap22012/The output is "p1 = china; p2 = 2012"

It can be seen from here that the parameters of the view are based on the regular expression of the URL, matched in order and automatically Assigned. Although this can achieve the transfer of any number of parameters, it is not flexible enough. The URL looks confusing, and because it is a regular match, it is error-prone in some cases.

4 Pass parameters through the traditional "?"

For example, http://127.0.0.1:8000/plist/?p1=china&p2=2012, after the '?' in the url, it means passing Parameters, two parameters p1 and p2 are passed here.

By passing parameters in this way, problems caused by regular matching errors will not occur. In Django, the parsing of such parameters is obtained through the request.GET.get method.

The configuration URL and its view are as follows:

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

The output result is "p1 = china; p2 = 2012"

For more articles related to the method of passing parameters in Django URL, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn