Django URL传递参数的方法总结


Posted in Python onAugust 28, 2016

1 无参数情况

配置URL及其视图如下:

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

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

2 传递一个参数
配置URL及其视图如下,URL中通过正则指定一个参数:

(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中通过正则指定两个参数:

(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及其视图如下:

(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″

Python 相关文章推荐
Python切片用法实例教程
Sep 08 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
详解python之协程gevent模块
Jun 14 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
Python计算不规则图形面积算法实现解析
Nov 22 Python
Python Selenium截图功能实现代码
Apr 26 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
python 网络编程常用代码段
Aug 28 #Python
Fabric 应用案例
Aug 28 #Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 #Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 #Python
python解决方案:WindowsError: [Error 2]
Aug 28 #Python
详解Python中的文件操作
Aug 28 #Python
Python环境变量设置方法
Aug 28 #Python
You might like
生成sessionid和随机密码的例子
2006/10/09 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
javascript新手语法小结
2008/06/15 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
详解Nodejs内存治理
2018/05/13 NodeJs
详解puppeteer使用代理
2018/12/27 Javascript
Python实现的RSS阅读器实例
2015/07/25 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
举例讲解Python常用模块
2019/03/08 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
解决python3输入的坑——input()
2020/12/05 Python
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
2014年助理工程师工作总结
2014/11/14 职场文书
公务员处分决定书
2015/06/25 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android