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

yipeiwu_com7年前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+matplotlib实现礼盒柱状图实例代码

python+matplotlib实现礼盒柱状图实例代码

演示结果: 完整代码: import matplotlib.pyplot as plt import numpy as np from matplotlib.image impor...

python语言基本语句用法总结

python语句与语法 1.python简单语句的基本介绍 >>> while True: #简单的while循环 ... reply = input('Ente...

完美解决在oj中Python的循环输入问题

完美解决在oj中Python的循环输入问题

完美解决在oj中Python的循环输入问题 这几天做题被python的循环输入问题给烦死了,好好查了一下,记录在此。 while True: t= sys.stdin.readl...

Python shutil模块用法实例分析

本文实例讲述了Python shutil模块用法。分享给大家供大家参考,具体如下: shutil模块 主要作用与拷贝文件用的。 1.shutil.copyfileobj(文件1,文件2)...

Python中还原JavaScript的escape函数编码后字符串的方法

遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案。 我们先来看在js中escape一段文字的编码 复...