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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
深入理解Python中装饰器的用法
Jun 28 Python
python验证码识别的实例详解
Sep 09 Python
python3实现跳一跳点击跳跃
Jan 08 Python
python原类、类的创建过程与方法详解
Jul 19 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
利用PyTorch实现VGG16教程
Jun 24 Python
Python调用C/C++的方法解析
Aug 05 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 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使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
python使用matplotlib画饼状图
2018/09/25 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
python3 enum模块的应用实例详解
2019/08/12 Python
深入学习python多线程与GIL
2019/08/26 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
策划创业计划书
2014/02/06 职场文书
毕业生应聘求职信
2014/07/10 职场文书
法人授权委托书
2014/09/16 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
预备党员考察意见范文
2015/06/01 职场文书
二胎满月酒致辞
2015/07/29 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书