Django URL传递参数的方法总结

1 无参数情况

配置URL及其视图如下:

1
2
3
4
(r‘^hello/$‘, hello)
 
def hello(request):
    return HttpResponse("Hello World")

访问http://127.0.0.1:8000/hello,输出结果为“Hello World”

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 传递多个参数
参照第二种情况,以传递两个参数为例,配置URL及其视图如下,URL中通过正则指定两个参数:

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/
输出为”p1 = china; p2 = 2012″

从这里可以看出,视图的参数是根据URL的正则式,按顺序匹配并自动赋值的。虽然这样可以实现任意多个参数的传递,但是却不够灵活,URL看起来很混乱,而且由于是正则匹配,有些情况下容易出错。

4 通过传统的”?”传递参数
例如,http://127.0.0.1:8000/plist/?p1=china&p2=2012,url中‘?’之后表示传递的参数,这里传递了p1和p2两个参数。

通过这样的方式传递参数,就不会出现因为正则匹配错误而导致的问题了。在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)

输出结果为”p1 = china; p2 = 2012″

本文链接地址: http://www.icodelogic.com/?p=501

时间: 2024-12-23 18:30:31

Django URL传递参数的方法总结的相关文章

【Django】url传递参数

1.  url传递参数的特殊字符 在压缩后,可能出现  +  -  = 空格  这类特殊字符,需要在传递前进行url编码  urllib.enquote(string) 获取参数后 urllib.unquote(string) 2.  字符的编解码 zlib.compress(base64.encode(string)) base64.decode(zlib.decompress(string))

ASP.NET 页面间传递参数的方法

这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面.这三种方法是:响应重定向,服务端传输和新的跨网页提交特性.我们可以已经熟悉前两种技术了,因此,我们只是简要地复习一下它们,然后我们会将主要精力放到学习如何使用跨网页提交特性,以及阐述一下这种方法和响应重定向以及服务传输方式有什么不同. 一.响应重定向方法 响应重定向方法是目前为止将一个网页重定向到另一个网页的最简单的方法的最简单的方法.当Web服务器接到一个重定向请求后,它会将一个响应

ASP.NET 页面间传递参数的方法(转)

ASP.NET 页面间传递参数的方法 http://www.cnblogs.com/eoiioe/archive/2008/04/08/1142247.html 这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面.这三种方法是:响应重定向,服务端传输和新的跨网页提交特性.我们可以已经熟悉前两种技术了,因此,我们只是简要地复习一下它们,然后我们会将主要精力放到学习如何使用跨网页提交特性,以及阐述一下这种方法和响应重定向以及服务传输方式有什

js获取url传递参数

js获取url传递参数 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET函数: <Script language="javascript"> function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (ur

QTP多个Action之间传递参数的方法详解

点击打开链接 脚本的朋友们都会碰到多个Action之间传递参数的问题,想当年我也是研究了好久才成功的,网上虽然有很多文章都在讲这个问题,但是大多都是雷同的抄来抄去不能解决实际问题,也有可能是我太笨了吧.下面我们来详细讲一下QTP多个Action之间传递参数的方法. 一.假设Action1调用Action2并且Action1传递参数给Action2 1.Action1的代码及设置 '定义两个变量 Dim strMessA:strMessA = "我是" Dim strMessB:strM

android传递参数的方法

Android由众多Activity组成,每个Activity对应不同的功能和UI,但是每个Activity都是一个单独的类,所以需要传递参数.一般来讲,Android中传递参数是在不同的Activity中.大致上有5类方案: 1 静态 static 定义方法: 1 public class MainActivity extends TabActivity { 2 public static DatabaseHelper mHelper; 3 public static SQLiteDataba

JSP中四种传递参数的方法

jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a=a&b=b&c=c>name</a> 1.form表单 form.jsp: <%@page contentType="text/html; charset=GB2312"%> &l

js获取url传递参数(转)

js获取url传递参数 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET函数: <Script language="javascript"> function GetRequest() {     var url = location.search; //获取url中"?"符后的字串    var theRequest = new Object();

url 传递参数(特殊字符)解决方法

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码       十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D 例如: ht