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本地与全局命名空间用法实例
Jun 16 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
详解python配置虚拟环境
Apr 08 Python
python2和python3在处理字符串上的区别详解
May 29 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Python基础之数据结构详解
Apr 28 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中Date()时间日期函数的使用方法小结
2011/04/20 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
班级读书活动总结
2014/06/30 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript