Django的URLconf中使用缺省视图参数的方法

yipeiwu_com5年前Python基础

一个方便的特性是你可以给一个视图指定默认的参数。 这样,当没有给这个参数赋值的时候将会使用默认的值。

例子:

# urls.py

from django.conf.urls.defaults import *
from mysite import views

urlpatterns = patterns('',
  (r'^blog/$', views.page),
  (r'^blog/page(?P<num>\d+)/$', views.page),
)

# views.py

def page(request, num='1'):
  # Output the appropriate page of blog entries, according to num.
  # ...

在这里,两个URL表达式都指向了同一个视图 views.page ,但是第一个表达式没有传递任何参数。 如果匹配到了第一个样式, page() 函数将会对参数 num 使用默认值 "1" ,如果第二个表达式匹配成功, page() 函数将使用正则表达式传递过来的num的值。

(注:我们已经注意到设置默认参数值是字符串 `` ‘1'`` ,不是整数`` 1`` 。为了保持一致,因为捕捉给`` num`` 的值总是字符串。

就像前面解释的一样,这种技术与配置选项的联用是很普遍的。 以下这个例子比提供视图配置选项一节中的例子有些许的改进。

def my_view(request, template_name='mysite/my_view.html'):
  var = do_something()
  return render_to_response(template_name, {'var': var})


相关文章

Python中的默认参数实例分析

本文研究的主要是Python中的默认参数的相关内容,具体如下。 熟悉C++语言的可以知道,C++语言中的默认参数是写在函数声明中的,为语法糖,与函数的调用无关,是在函数调用的时候由编译器...

python 计算一个字符串中所有数字的和实例

如下所示: # 计算一个字符串中所有数字的和 def numsum(s): sum = 0 #定义变量,准备记录数字的和 for...

基于python生成器封装的协程类

自从python2.2提供了yield关键字之后,python的生成器的很大一部分用途就是可以用来构建协同程序,能够将函数挂起返回中间值并能从上次离开的地方继续执行。python2.5的...

python实现接口并发测试脚本

常用的网站性能测试指标有:并发数、响应时间、吞吐量、性能计数器等。 1、并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。 2、响应时间 响应时间是一个系...

【Python】Python的urllib模块、urllib2模块批量进行网页下载文件

【Python】Python的urllib模块、urllib2模块批量进行网页下载文件

由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载。正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Pyt...