在Django的URLconf中使用多个视图前缀的方法

在实践中,如果你使用字符串技术,特别是当你的 URLconf 中没有一个公共前缀时,你最终可能混合视图。 然而,你仍然可以利用视图前缀的简便方式来减少重复。 只要增加多个 patterns() 对象,象这样:

旧的:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
  (r'^hello/$', 'mysite.views.hello'),
  (r'^time/$', 'mysite.views.current_datetime'),
  (r'^time/plus/(\d{1,2})/$', 'mysite.views.hours_ahead'),
  (r'^tag/(\w+)/$', 'weblog.views.tag'),
)

新的:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.views',
  (r'^hello/$', 'hello'),
  (r'^time/$', 'current_datetime'),
  (r'^time/plus/(\d{1,2})/$', 'hours_ahead'),
)

urlpatterns += patterns('weblog.views',
  (r'^tag/(\w+)/$', 'tag'),
)

整个框架关注的是存在一个名为 urlpatterns 的模块级别的变量。如上例,这个变量可以动态生成。 这里我们要特别说明一下,patterns()返回的对象是可相加的,这个特性可能是大家没有想到的。

(0)

相关推荐

  • 在Django的URLconf中进行函数导入的方法

    看下这个 URLconf: from django.conf.urls.defaults import * from mysite.views import hello, current_datetime, hours_ahead urlpatterns = patterns('', (r'^hello/$', hello), (r'^time/$', current_datetime), (r'^time/plus/(\d{1,2})/$', hours_ahead), ) 在 URLconf

  • 在Django的URLconf中使用命名组的方法

    在我们想要捕获的URL部分上加上小括号,Django 会将捕获的文本作为位置参数传递给视图函数. 在更高级的用法中,还可以使用 命名 正则表达式组来捕获URL,并且将其作为关键字参数传给视图. 一个 Python 函数可以使用关键字参数或位置参数来调用,在某些情况下,可以同时进行使用. 在关键字参数调用中,你要指定参数的名字和传入的值. 在位置参数调用中,你只需传入参数,不需要明确指明哪个参数与哪个值对应,它们的对应关系隐含在参数的顺序中. 例如,考虑这个简单的函数: def sell(item

  • Django中URLconf和include()的协同工作方法

    捕获的参数如何和include()协同工作 一个被包含的URLconf接收任何来自parent URLconfs的被捕获的参数,比如: # root urls.py from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^(?P<username>\w+)/blog/', include('foo.urls.blog')), ) # foo/urls/blog.py from django.conf.urls

  • 在Django的URLconf中使用多个视图前缀的方法

    在实践中,如果你使用字符串技术,特别是当你的 URLconf 中没有一个公共前缀时,你最终可能混合视图. 然而,你仍然可以利用视图前缀的简便方式来减少重复. 只要增加多个 patterns() 对象,象这样: 旧的: from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^hello/$', 'mysite.views.hello'), (r'^time/$', 'mysite.views.current_da

  • 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(r

  • 关于AngularJS中ng-repeat不更新视图的解决方法

    最近写AngularJS项目中,遇到一个问题,先对数组进行赋值,ng--repeat正常工作,然后对数组进行修改,ng-repeat似乎没有工作,视图没有更新. 原因是ng-repeat会已默认值排序,由于我的数组中的元素有重复,所以ng-repeat没有对重复的元素进行刷新,只要对ng-repeat指定track by就可以了 <tr ng-repeat="selectedCriterias in selectedCriteriasArray track by $index"&

  • Domino中运用jQuery读取视图内容的方法

    jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站或系统提供AJAX交互. 在Domino中应用jQuery框架能够大量简化js代码,并使得js的程序更加简洁和直观,下面是一个简单的例子,在表单中简单运用jQuery来读取视图内容. 1.在表单中加入以下代码并内置HTML: html 代码: <input type=button onclick="GetViewContent()"

  • Django框架中处理URLconf中特定的URL的方法

    有时你有一个模式来处理在你的URLconf中的一系列URL,但是有时候需要特别处理其中的某个URL. 在这种情况下,要使用将URLconf中把特殊情况放在首位的线性处理方式 . 比方说,你可以考虑通过下面这个URLpattern所描述的方式来向Django的管理站点添加一个目标页面 urlpatterns = patterns('', # ... ('^([^/]+)/([^/]+)/add/$', views.add_stage), # ... ) 这将匹配像 /myblog/entries/

  • Django框架下在URLconf中指定视图缓存的方法

    将视图与缓存系统进行了耦合,从几个方面来说并不理想. 例如,你可能想在某个无缓存的站点中重用该视图函数,或者你可能想将该视图发布给那些不想通过缓存使用它们的人. 解决这些问题的方法是在 URLconf 中指定视图缓存,而不是紧挨着这些视图函数本身来指定. 完成这项工作非常简单: 在 URLconf 中用到这些视图函数的时候简单地包裹一个 cache_page .以下是刚才用到过的 URLconf : 这是之前的URLconf: urlpatterns = ('', (r'^foo/(\d{1,2

  • django中的HTML控件及参数传递方法

    本文对djangoHTML的表单控件中的单选及多选进行介绍,并说明如何进行参数传递. 1.HTML中的表单控件: 在HTML中表单的书写一般为: <form method="post" action=""> 这个method代表方法,方法一般有两个一个是'post',一个是'get',action是提交表单到何处,可填写一个网址.不填则默认到本页面. {%csrf_token%} 这个是django中的一个标签,用于防止恶意攻击使用,如果不加入这个标签,

  • Django应用程序中如何发送电子邮件详解

    前言 在Django应用程序中发送电子邮件最常见的用例是密码重置.帐户激活和发送与您的应用程序相关的一般通知.下面来看看详细的介绍吧. 配置Django发送电子邮件 要配置您的Django应用程序,添加下面的参数到你settings.py: # 主机 EMAIL_HOST = "smtp.sina.com" # 端口 EMAIL_PORT = 25 # 发件人邮箱 EMAIL_HOST_USER = "anshengme@sina.com" # 密码 EMAIL_H

随机推荐