1. Including other URLconfs

原urls.py文件,多个app的路由系统写在一起,不方便管理

范例:

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4. from app02 import views as app02_views
  5.  
  6. urlpatterns = [
  7. url(r'^admin/', admin.site.urls),
  8. url(r'^publisher_list/$', views.PubList.as_view()),
  9. url(r'^edit_publisher/$', views.EditPub.as_view()),
  10. url(r'^book_list/$', views.BookList.as_view()),
  11. url(r'^templates/$', views.Templates.as_view()),
  12. url(r'^book/$', app02_views.book),
  13. ]

2. 使用include

使用:

2.1 注释app01的相关配置

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3.  
  4. from app02 import views as app02_views
  5.  
  6. urlpatterns = [
  7. url(r'^admin/', admin.site.urls),
  8. # url(r'^publisher_list/$', views.PubList.as_view()),
  9. # url(r'^edit_publisher/$', views.EditPub.as_view()),
  10. # url(r'^book_list/$', views.BookList.as_view()),
  11. # url(r'^templates/$', views.Templates.as_view()),
  12. url(r'^book/$', app02_views.book),
  13. ]

2.2 在app01目录中创建urls.py文件

  1. from django.conf.urls import url
  2. from app01 import views
  3.  
  4. urlpatterns = [
  5. url(r'^publisher_list/$', views.PubList.as_view()),
  6. url(r'^edit_publisher/$', views.EditPub.as_view()),
  7. url(r'^book_list/$', views.BookList.as_view()),
  8. url(r'^templates/$', views.Templates.as_view()),
  9. ]

但是仅此而已还不够,启动Django项目,发现不能访问app01中的链接

2.3 导入urls模块的include方法

方法一:

  1. from django.conf.urls import url, include
  2. from django.contrib import admin
  3. from app02 import views as app02_views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. # 这种方式不明确,不能根据程序区分
  8. url(r'^', include('app01.urls')),
  9. url(r'^book/$', app02_views.book),
  10. ]

方法二:

  1. from django.conf.urls import url, include
  2. from django.contrib import admin
  3. from app02 import views as app02_views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. # 这种方式可以根据不同的程序访问不同的url
  8. url(r'^app01/', include('app01.urls')),
  9. url(r'^book/$', app02_views.book),
  10. ]

  


Django的路由系统01-路由分发的更多相关文章

  1. ASP.NET的路由系统:路由映射

    总的来说,我们可以通过RouteTable的静态属性Routes得到一个基于应用的全局路由表,通过上面的介绍我们知道这是一个类型的RouteCollection的集合对象,我们可以通过调用它的MapP ...

  2. ASP.NET Web API路由系统:路由系统的几个核心类型

    虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除 ...

  3. 创建自定义路由处理程序(Creating a Custom Route Handler) | 定制路由系统| 高级路由特性 |精通ASP-NET-MVC-5-弗瑞曼

    自定义实现 IRouteHandler

  4. django框架--路由系统

    目录 一.路由系统理解 二.路由系统功能划分 三.路由表创建 创建工具 二级路由 路由别名 动态路由及重定向 四.自定义错误页面 五.图示路由系统在框架中的定位 六.路由系统的进阶想法 一.路由系统理 ...

  5. django 路由系统,数据库操作

    一.修改配置 数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': ...

  6. ASP.NET MVC , ASP.NET Web API 的路由系统与 ASP.NET 的路由系统是怎么衔接的?

      ASP.NET MVC 的路由实际上是建立在 ASP.NET 的路由系统之上的. MVC 路由注册通常是这样的: RouteTable 是一个全局路由表, 它的 Routes 静态属性是一个 Ro ...

  7. django中路由系统和视图的对应关系(值的传递)-->主要内容(位置参数、关键字参数、额外参数、include分组[urls的分发]、命名分组、反向解析、APPEND_SLASH)

    路由系统也就是 urls.py文件,视图就是 views.py文件 路由系统里面要注意的事项 urlpatterns中的元素按照书写顺序从上往下逐一匹配正则表达式,一旦匹配成功则不再继续. 若要从UR ...

  8. django路由系统及分发路由的本质

    路由系统 当我们启动一个django项目后,想要通过浏览器访问到django项目中的资源 就需要在django中的urls项目中进行路由配置 urlpatterns = [ url(r'^admin/ ...

  9. django上课笔记1-目录介绍-路由系统-ORM操作

    一.Django目录介绍 django-admin startproject mysite # 创建名为mysite的项目 cd mysite # 切换到该目录下 python manage.py s ...

随机推荐

  1. Qt static关键字全局变量

    创建全局变量.h文件 globalvariable.h #ifndef GLOBALVARIABLE_H #define GLOBALVARIABLE_H #include <QImage> ...

  2. java异常分析;剖析printStackTrace和fillInStackTrace

    Java异常的栈轨迹(Stack Trace) 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printS ...

  3. Linux Ubuntu 查看IP

    一.第一种方式:ifconfig -a 1.打开命令终端:Crtl + Alt + T 2.执行命令:ifconfig -a 如果你没有安装net-tools工具,则出现如下显示: (没有找到'ifc ...

  4. ASP.NET MVC4网站搭建与发布【最新】

    ASP.NET MVC4网站搭建与发布 一些往事 2015年,仅仅大二的我怀着一颗创业之心,加入了常熟派英特,成为阳光职场平台的创始之一,并肩负了公司技术部的大梁,当时阳光职场正在从线下服务向互联网化 ...

  5. Angular2与Angular1的区别

    原文地址: http://www.angularjs.cn/A2Ar 整体上来说,Angular2变得更加简洁,最核心的概念只剩下一个,那就是组件Component,其它所有的一切都是围绕着Compo ...

  6. MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法

    发现MySQL服务器因系统磁盘写满导致服务停了,清理磁盘后启动服务时无法正常启动,查看localhost.err日志发现如下报错: [ERROR] Unix socket lock file is e ...

  7. 大忙人的jdk8,比出生晚了好几个激情的夏天

    写给大忙人的jdk8到手了,第一件事情就蒙蔽了,mac装的jdk7,切换jdk的功能要整出来才行,下好jdk8up101安装,假装几行代码搞定目标在命令行下,可以通过命令'jdk6', 'jdk7', ...

  8. GRE阅读

    界面和托福差不多,就是反一反 GRE先读文章!因为出题顺序不一致.另外,不能跳读!!每一句都要读,即使不是观点. 考察能力: 1 三秒版本 边读边概括 解决前面的抗遗忘能力 2 句间关系 取同 取反 ...

  9. Fragment argument

    每个Fragment实例都可以附带一个Bundle对象,该bundle包含键值对,可以像附加extra到Activity的intent中那样使用他们.一个键值对即一个argument. 创建frage ...

  10. Python2.7错误处理FileNotFoundError报错NameError: name 'FileNotFoundError' is not defined

    错误信息如下: 原因是FileNotFoundError是python3.0中的写法,而Python2.7中应写为IOError.