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中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python中的浮点数原理与运算分析
Oct 12 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python中base64与xml取值结合问题
Dec 22 Python
Django 批量插入数据的实现方法
Jan 12 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
python怎么提高计算速度
Jun 11 Python
Python实现照片卡通化
Dec 06 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
图书管理程序(三)
2006/10/09 PHP
PHP学习笔记之二
2011/01/17 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
python标准库os库的函数介绍
2020/02/12 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
python文件排序的方法总结
2020/09/13 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
售后主管岗位职责
2013/12/08 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
四年级科学教学反思
2014/02/10 职场文书
禁止酒驾标语
2014/06/25 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript