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 相关文章推荐
urllib2自定义opener详解
Feb 07 Python
跟老齐学Python之永远强大的函数
Sep 14 Python
Python设计模式之中介模式简单示例
Jan 09 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python安装与基本数据类型教程详解
May 29 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 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图片上传类带图片显示
2006/11/25 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
js实现图片粘贴到网页
2019/12/06 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
对numpy中的数组条件筛选功能详解
2018/07/02 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
学生会竞选自荐信
2013/10/12 职场文书
物流仓储计划书
2014/01/10 职场文书
商场总经理岗位职责
2014/02/03 职场文书
小学社团活动总结
2014/06/27 职场文书
党校毕业个人总结
2015/02/28 职场文书
培训通知书模板
2015/04/17 职场文书
创建文明城市倡议书
2015/04/28 职场文书
导游词之天津古文化街
2019/11/09 职场文书
Python time库的时间时钟处理
2021/05/02 Python
新手初学Java List 接口
2021/07/07 Java/Android
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android