一、問題
在配置 urls.py 文件時,添加正則表達式之後,網頁出現無法 404 錯誤,代碼如下:
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path(r'name/(\w+)', views.text),
]
二、方法
導入 re_path 模塊:
from django.urls import re_path
三、原因
當使用 paths 和 converters syntax 不能滿足對 URL 模式的定義時,可以使用正則表達式來解決。這時需要使用 re_path() 方法來取代 path() 方法,如下例:
from django.urls import path, re_path
from . import views
urlpatterns = [
path('articles/', views.special),
re_path(r'^articles/(?P<year>[0-9]{4})/$', views.archive),
]
- 約束了匹配到的 URLs ,例如年份只能時 4 位數;
- 可以將匹配到數任意結果以字符串的形式發送。
更多信息請看官方文檔:https://docs.djangoproject.com/en/2.2/ref/urls/#django.urls.re_path