当前位置: 首页 > 编程笔记 >

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

石博艺
2023-03-14
本文向大家介绍Django的URLconf中使用缺省视图参数的方法,包括了Django的URLconf中使用缺省视图参数的方法的使用技巧和注意事项,需要的朋友参考一下

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

例子:

# 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})


 类似资料:
  • 本文向大家介绍Django中传递参数到URLconf的视图函数中的方法,包括了Django中传递参数到URLconf的视图函数中的方法的使用技巧和注意事项,需要的朋友参考一下 有时你会发现你写的视图函数是十分类似的,只有一点点的不同。 比如说,你有两个视图,它们的内容是一致的,除了它们所用的模板不太一样: 我们在这代码里面做了重复的工作,不够简练。 起初你可能会想,通过对两个URL都使用同样的视图

  • 本文向大家介绍在Django的URLconf中使用多个视图前缀的方法,包括了在Django的URLconf中使用多个视图前缀的方法的使用技巧和注意事项,需要的朋友参考一下 在实践中,如果你使用字符串技术,特别是当你的 URLconf 中没有一个公共前缀时,你最终可能混合视图。 然而,你仍然可以利用视图前缀的简便方式来减少重复。 只要增加多个 patterns() 对象,象这样: 旧的: 新的: 整

  • 本文向大家介绍在Django中创建URLconf相关的通用视图的方法,包括了在Django中创建URLconf相关的通用视图的方法的使用技巧和注意事项,需要的朋友参考一下 抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数: 我们可以把问候语提取出来变成一个参数: 通过使用额外的URLconf参数,你可以把同样的思想应用到Django的视图中。 了解这个以后,你可

  • 本文向大家介绍在Django的URLconf中使用命名组的方法,包括了在Django的URLconf中使用命名组的方法的使用技巧和注意事项,需要的朋友参考一下 在我们想要捕获的URL部分上加上小括号,Django 会将捕获的文本作为位置参数传递给视图函数。 在更高级的用法中,还可以使用 命名 正则表达式组来捕获URL,并且将其作为关键字参数传给视图。 一个 Python 函数可以使用关键字参数或位

  • 在前面的介紹,我們有提到 Django 的 MTV 架構。其處理 request 的流程如下: 瀏覽器送出 HTTP request Django 依據 URL configuration 分配至對應的 View View 進行資料庫的操作或其他運算,並回傳 HttpResponse 物件 瀏覽器依據 HTTP response 顯示網頁畫面 這一章,我們將透過 Hello World 範例 ,瞭

  • 本文向大家介绍在Django的URLconf中进行函数导入的方法,包括了在Django的URLconf中进行函数导入的方法的使用技巧和注意事项,需要的朋友参考一下 看下这个 URLconf: 在 URLconf 中的每一个入口包括了它所关联的视图函数,直接传入了一个函数对象。 这就意味着需要在模块开始处导入视图函数。 但随着 Django 应用变得复杂,它的 URLconf 也在增长,并且维护这些