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完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
Python获取服务器信息的最简单实现方法
Mar 05 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
python数据类型强制转换实例详解
Jun 22 Python
如何让python的运行速度得到提升
Jul 08 Python
Django实现聊天机器人
May 31 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
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
php curl模拟post请求小实例
2013/11/13 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
javascript radio 联动效果
2009/03/04 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
python获取文件扩展名的方法
2015/07/06 Python
python 写的一个爬虫程序源码
2016/02/28 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
群众路线教育实践活动方案
2014/02/02 职场文书
《乞巧》教学反思
2014/02/27 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
践行三严三实心得体会
2014/10/13 职场文书
田径运动会广播稿
2015/08/19 职场文书