1. 程式人生 > >Django筆記(二)模組化url路由

Django筆記(二)模組化url路由

Django框架之路由模組化

為什麼要使用路由模組化

1.大家應該都知道Django可以做什麼大型的企業級網站,大家也可以百度看下,國內的知乎就是使用python做的,像這樣龐大的一個專案,url的路由管理起來會相當的麻煩,還好django有一個模組化路由的功能幫助我們解決了這個複雜的難題。

通過程式碼檢視如何urls模組化

Django想必大家都知道每隔功能都是以個app,所以我這裡建立了兩個app來演示url模組化強大的功能。
首先在命令列執行 python manage.py stratapp book
python manage.py stratapp city


建立了兩個app,這裡建立了app後需要自己在專案中自己建立urls.py,

專案的urls.py檔案

	from django.contrib import admin
	from django.urls import path,include
	urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/',include('book.urls')),
    path('city/',include('city.urls')),
]
>這個是在專案的urls.py檔案的

大家可以看到,當我執行的url路徑包含book的時候,就會進入到book.urls這個檔案李查詢想應的方法執行,下面的city也是一樣的,等下呢在下面我通過實際的例子來講解

book專案下的urls.py

from django.urls import path
from book.views import *
urlpatterns = [
    path('details/<int:id>',book_details)
]

這裡大家可以看到當我url的路徑包含了details/int:id的時候就會執行book_details方法

city專案下的urls.py

from django.urls import path
from city.views import *
urlpatterns = [
path('name/<str:cityname>',show_city_name), ]

通過瀏覽器的訪問來說明這是怎麼一回事

book_details.py檔案

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def book_details(request,id):
    text = "你選擇的頁碼是:%s" % id
    return HttpResponse(text)

在這裡插入圖片描述大家看上圖的URL位址列可以清楚的看到我要訪問的book->details,當我輸入這個地址的時候,首先進入專案的urls.py檔案進行查詢,當找到了book所指向的urls.py檔案的時候,就會包含這個檔案繼續進行解析,然後找到了匹配的urls,就執行了book_details方法,在顯示器上進行了列印輸出。

其實:這裡可以說的在通俗點:就是在url的位址列中,我遇到了book,就會找我設定的book對應的檔案,進入檔案後繼續查詢對應的url,知道找到對應方法進行執行,如果找不到就會報404錯誤。

所以,通過這樣的方式可以進行更好的管理urls路由,使我們的程式碼更加清晰