码迷,mamicode.com
首页 > Web开发 > 详细

Django入门(五)   多级URL和默认URL

时间:2016-03-14 16:45:15      阅读:834      评论:0      收藏:0      [点我收藏+]

标签:django入门(五)

    django中我们发布app01应用的使用的index.html,首先需要在myjango子目录的urls文件中去编辑url的路由    技术分享

这种情况适用于应用较少的时候。加入我们不只有app01,后面还有很多很多app的时候。如果将这些路由都写入到子目录mudjango目录下的url就显得非常混乱了。这时使用多级url就是一个比较好的解决方案。

首先再创建一个名字叫app02的应用

在命令行下输入

python manager.py startapp app02

技术分享

技术分享


第二步、在template目录下分别创建两个html文件,提供给两个app使用。另外再创建一个default.html文件一会儿测试默认url的时候使用。具体的目录结构如下

技术分享


编辑这三个新建的html,因为只是测试用能区分开这三个文件就可以了。这里就不罗列简单的代码了。


第三步、编辑app01应用下的views.py

views.py

# /usr/bin/env python
# coding:utf-8
from django.shortcuts import render
def app01_index(request):
    return render(request,‘app01/app01_inde.html‘)
    
def default_index(request):
    return render(request,‘default.html‘)


app01应用模块下添加新建一个urls.py文件,仿照mydjango子目录下的urls.py内容编写如下内容

#!/usr/bin/env python
# -*-coding:utf-8-*-
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^app01index/$‘, views.app01_index),
    #定义默认访问路由,表示输入任意url路径
    url(r‘^$‘, views.default_index),
]

技术分享

同样的方法来编辑app02应用中的内容

/app02/views.py

# /usr/bin/env python
# coding:utf-8
from django.shortcuts import render
def app02_index(request):
    return render(request,‘app01/app02_index.html‘)


编辑app02的urls.py

/app02/urls.py

#!/usr/bin/env python
# -*-coding:utf-8-*-
from django.conf.urls import url
from django.contrib import admin
from app02 import views
urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^app02index/$‘, views.app02_index),
]

技术分享


第四步、就是最关键的一步,我们现在来编辑mydjango子目录下的urls.py

mydjango/urls.py

#!/usr/bin/env python
# coding:utf-8

#这里多引用了一个include模块
from django.conf.urls import url,include
from django.contrib import admin
"""
这里的就是告诉路由系统,遇到多级url的时候去哪个app下的找对应
的子url
"""
urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    #因为是多级的url,一定要去掉‘$‘号。因为这个只是第一级的url,后面还有二级url呢
    url(r‘^/app01/‘, include(‘app01.urls‘)),
    url(r‘^/app02/‘, include(‘app02.urls‘)),
    #如果域名后面没有指定路径就匹配这一条规则,这里也要去掉‘$‘号
    url(r‘^‘, include(‘app01.urls‘)),
]

最后来启动server测试一下我们的配置是否成功

先来测试一下app01

技术分享

可以看到这个页面先经过了app01这个路径之后才进入到app01_index的


同样app02也是这样的效果

技术分享


最后来检查一下默认首页,不输入任何url路径时候能否正确显示

技术分享


到这里就实现了多级URL和默认URL的配置。

本文出自 “霹雳豆包” 博客,谢绝转载!

Django入门(五)   多级URL和默认URL

标签:django入门(五)

原文地址:http://830909.blog.51cto.com/8311014/1750886

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!