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中使用tarfile压缩、解压tar归档文件示例
Apr 05 Python
Python求算数平方根和约数的方法汇总
Mar 09 Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
python实现汉诺塔算法
Mar 01 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
如何通过python实现全排列
Feb 11 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
在python中对于bool布尔值的取反操作
Dec 11 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 连接mssql数据库 初学php笔记
2010/03/01 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
js中unicode转码方法详解
2015/10/09 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
javascript回调函数详解
2018/02/06 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
python 实现插入排序算法
2012/06/05 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
商场活动策划方案
2014/01/24 职场文书
学校消防安全制度
2014/01/30 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
班训口号大全
2014/06/18 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
小学班主任事迹材料
2014/12/17 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
SQL注入详解及防范方法
2021/12/06 MySQL
Python学习之包与模块详解
2022/03/19 Python
Docker安装MySql8并远程访问的实现
2022/07/07 Servers