一個Django工程中多數(shù)情況下會存在多個應(yīng)用, 如何針對多個應(yīng)用的url進(jìn)行配置呢?
有以下兩種方案:
1、在Django工程的urls.py中針對每個應(yīng)用分別配置不同的url路徑
2、在工程總體的urls.py中引入每個應(yīng)用的url配置文件,不同的url路徑在各自的配置文件中分別配置(推薦這種方式)
理由:在我們的項(xiàng)目中,不可能只有一個app,如果把所有的app的views中的視圖都放在urls.py中進(jìn)行映射,肯定會讓代碼顯得非常亂。因此django給我們提供了一個方法,可以在app內(nèi)部包含自己的url匹配規(guī)則,而在項(xiàng)目的urls.py中再統(tǒng)一包含這個app的urls。使用這個技術(shù)需要借助include函數(shù)。這樣一來,就會分清楚項(xiàng)目和應(yīng)用的URL。
每個應(yīng)用負(fù)責(zé)自己的URL,這樣符合代碼重用,DRY,在一處調(diào)試相同的代碼等準(zhǔn)則。
項(xiàng)目的URL寫法如下:
jango.contrib import admin
from django.urls import include,path
urlpatterns = [
path('admin/', admin.site.urls),
path('app1/',include('app1.urls')),
]
下面在應(yīng)用app1下新建一個urls.py文件
from django.urls import path
from app1 import views
urlpatterns = [
path('index/', views.index),
]
這時訪問網(wǎng)頁:http://127.0.0.1:8000/app1/index/ 就可以看到index.html頁面了。
re_path函數(shù):
有時候我們在寫url匹配的時候,想要寫使用正則表達(dá)式來實(shí)現(xiàn)一些復(fù)雜的需求,那么這時候我們可以使用re_path來實(shí)現(xiàn)。re_path的參數(shù)和path參數(shù)一模一樣,只不過第一個參數(shù)也就是route參數(shù)可以為一個正則表達(dá)式。
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。