Django筆記(二)模組化url路由
阿新 • • 發佈:2018-12-28
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也是一樣的,等下呢在下面我通過實際的例子來講解
from django.urls import path
from book.views import *
urlpatterns = [
path('details/<int:id>',book_details)
]
這裡大家可以看到當我url的路徑包含了details/int:id的時候就會執行book_details方法
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路由,使我們的程式碼更加清晰