Django URL配置
當在撰寫Django1.9版本的url.py的urlpatterns,會碰到要使用同樣的view裡頭的class,一直要用同樣的路徑,必須要重複寫的時候,例如
from django.conf.urls import url from django.contrib import admin
import view import restaurants.view import django.contrib.auth.views
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^accounts/login/$', django.contrib.auth.views.login, {'template_name':'login.html'}), url(r'^accounts/logout/$', django.contrib.auth.views.logout), url(r'^menu/$', restaurants.view.menu), url(r'^restaurants_list/$', restaurants.view.list_restaurants), url(r'^users_list/$', restaurants.view.list_users), url(r'^comment/(?P<id>\d{1,6})/$', restaurants.view.comment), url(r'^firstmenu/$', 'restaurants.view.menu',{'id':'1'}), url(r'^secondmenu/$', 'restaurants.view.menu',{'id':'2'}), url(r'^setc/$', restaurants.view.set_c), url(r'^getc/$', restaurants.view.get_c), url(r'^session_test/$', restaurants.view.session_test), url(r'^index/$', view.index), url(r'^welcome/$', view.welcome), url(r'^accounts/register/$', view.register), ]
可以改寫成 下面 多個 urlpatterns與extra_patterns 用 += 附加
from django.conf.urls import url, include from django.contrib import admin import django.contrib.auth.views
import view as home
urlpatterns = [ url(r'^welcome/$', home.welcome), url(r'^index/$', home.index), url(r'^accounts/register/$', home.register), ]
import restaurants.view as app
urlpatterns += [ url(r'^admin/', admin.site.urls), url(r'^menu/$', app.menu), url(r'^firstmenu/$', 'app.menu',{'id':'1'}), url(r'^secondmenu/$', 'app.menu',{'id':'2'}), url(r'^restaurants_list/$', app.list_restaurants), url(r'^setc/$', app.set_c), url(r'^getc/$', app.get_c), url(r'^users_list/$', app.list_users), url(r'^comment/(?P<id>\d{1,6})/$', app.comment), url(r'^session_test/$', app.session_test), ]
extra_patterns = [ url(r'^accounts/login/$', django.contrib.auth.views.login, {'template_name':'login.html'}), url(r'^accounts/logout/$', django.contrib.auth.views.logout), ]















