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中列表(list)操作方法汇总
Aug 18 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 Python
python处理按钮消息的实例详解
Jul 11 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
python实现ping命令小程序
Dec 28 Python
Django给表单添加honeypot验证增加安全性
May 06 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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页面间传递参数实例代码
2008/06/05 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
Node.js 回调函数实例详解
2017/07/06 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
python中随机函数random用法实例
2015/04/30 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
postman传递当前时间戳实例详解
2019/09/14 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
教师求职自荐信
2014/03/09 职场文书
气象学专业个人求职信
2014/03/15 职场文书
学习礼仪心得体会
2014/09/01 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
法制教育观后感
2015/06/17 职场文书
医院保洁员管理制度
2015/08/05 职场文书
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
mysql的单列多值存储实例详解
2022/04/05 MySQL