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 相关文章推荐
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
如何利用python发送邮件
Sep 26 Python
Python中openpyxl实现vlookup函数的实例
Oct 28 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 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高效率写法(详解原因)
2013/06/20 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python切换pip安装源的方法详解
2016/11/18 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python中可以声明变量类型吗
2020/06/18 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
测试工程师程序员求职信范文
2014/02/20 职场文书
高中生操行评语大全
2014/04/25 职场文书
电子商务专业求职信
2014/07/10 职场文书
施工单位安全责任书
2014/07/24 职场文书
爱牙日活动总结
2014/08/29 职场文书
公司证明怎么写
2014/09/22 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
MySQL视图概念以及相关应用
2022/04/19 MySQL
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技