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下的subprocess模块的入门指引
Apr 16 Python
Python的Django框架安装全攻略
Jul 15 Python
详解python中的Turtle函数库
Nov 19 Python
mac系统下Redis安装和使用步骤详解
Jul 09 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
Python os模块常用方法和属性总结
Feb 20 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
如何理解python对象
Jun 21 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
python中pickle模块浅析
Dec 29 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python实现QQ批量登录功能
2019/06/19 Python
机器学习实战之knn算法pandas
2019/06/22 Python
Python argparse模块使用方法解析
2020/02/20 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
一组SQL面试题
2016/02/15 面试题
SQL数据库笔试题
2016/03/08 面试题
请解释流与文件有什么不同
2016/07/29 面试题
通用自荐信范文
2014/03/14 职场文书
母亲节演讲稿
2014/05/27 职场文书
红旗渠导游词
2015/02/09 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript