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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
python实现自动更换ip的方法
May 05 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
python实现Virginia无密钥解密
Mar 20 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python shelve模块实现解析
Aug 28 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
python利用faker库批量生成测试数据
Oct 15 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
java关于string最常出现的面试题整理
Jan 18 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/10/09 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP中文乱码解决方案
2015/03/05 PHP
什么是JavaScript
2009/08/13 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
通过python3实现投票功能代码实例
2019/09/26 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
小学教师的自我评价范例
2013/10/31 职场文书
零件设计自荐信范文
2013/11/27 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
《鱼游到了纸上》教学反思
2014/02/20 职场文书
小学德育工作总结2015
2015/05/12 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript