Django url管理之include


在Django框架中,提供了非常清晰簡潔的url管理方法,在新建一個project之后(此處為myproject),然后在項目中建立一個app(此處為myapp),會看到有如下的目錄結構:

 

項目目錄結構

 

一般所熟知的就是在myproject/myproject/urls.py中的urlpatterns列表中來配置 url,每一個列表項就是一個由url函數的調用。例如嘉定我們想在myapp中定義一個主頁,然后通過"http://localhost:8000/myapp/homepage"來訪問,首先我們在myproject/myapp//view.py中定義一個叫homePage的函數(名字隨意,不一定叫這名字):

from django.shortcuts import render
from django.http.response import HttpResponse

# Create your views here.
def homePage(request):
    return HttpResponse("<h1>This is home page</h1>")

 

然后在myproject/myproject/urls.py的urlpatterns列表中添加一個url配置:

from django.conf.urls import url
from django.contrib import admin
from myapp.views import homePage#記得導入

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^myapp/homepage', homePage)
]

 

然后運行項目,就可以用瀏覽器通過http://localhost:8000/myapp/homepage來訪問。

 

但假如一個project中有多個app,用以上的方式來管理url可能會造成比較混亂的局面,為了解決這個問題,我們可以用include的方法來配置url,首先我們在自己的app中建立一個urls.py,即myproject/myapp/目錄下建立urls.py,然后在其中輸入如下內容:

 

from django.conf.urls import url

from myapp.views import homePage


urlpatterns = [
    url(r'homepage', homePage),
]

 

然后在項目的urls中包含剛剛app中添加的url配置,我們要做的是在myproject/myproject/urls.py輸入如下內容:

from django.conf.urls import url, include#導入了include函數
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^myapp/', include("myapp.urls"))#包含myapp中的urls
]

 

然后通過剛剛相同的url(http://localhost:8000/myapp/homepage)訪問發現也可以訪問了,通過這樣的url管理會發現更加整潔,可擴展性更強。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM