如果使用urlpattern匹配不輸入任何網址時,應該如何寫?
例如:僅匹配http://127.0.0.1:8000/時想要跳轉到某個頁面,這時urlpattern中的url規則應該寫成:
情況1:使用url
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'',include('CRM.urls')), # 以前習慣用url(r'^$',view.somedef)
# 如果這么寫會報錯:
# Your URL pattern '^$' uses include with a route ending with a '$'
]
情況2:使用path
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('CRM.urls')),
]
情況3:使用re_path
from django.contrib import admin
from django.conf.urls import re_path
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'',include('CRM.urls')),
]
以上情況在python3.4+Django2.0.13環境下測試通過
額外說一下:在跳轉的時候,這樣寫:
return redirect(request.GET.get('next','/'))
可以保證如果有人亂輸入網址時就會自動跳轉到默認頁面,而避免出現錯誤提示
順便吐槽一下,后台寫博客的編輯環境真特么low逼,用着很別扭。
將就看吧,我實在弄不了它這個格式應該如何調整