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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
python之yield表达式学习
Sep 02 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
Python处理JSON数据并生成条形图
Aug 05 Python
Python实现分段线性插值
Dec 17 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
python range实例用法分享
Feb 06 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
python GUI计算器的实现
Oct 09 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 Python
Pillow图像处理库安装及使用
Apr 12 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
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
js类 from qq
2006/11/13 Javascript
一页面多XMLHttpRequest对象
2007/01/22 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
js实现简单的验证码
2015/12/25 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
python图像处理之反色实现方法
2015/05/30 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
python获取服务器响应cookie的实例
2018/12/28 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
Python pickle模块实现对象序列化
2019/11/22 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
优秀员工年终发言演讲稿
2014/01/01 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
司法所长先进事迹
2014/06/02 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
小时代观后感
2015/06/10 职场文书