我正在嘗試為產品頁面制作一個示例,人們可以在其中將設計放在他們的產品上。我正在使用 django 并嘗試使我的“設計師”頁面在所選產品型別上的行為有所不同。
我想讓它表現得像www.mysite.com/designer/foo ,其中 foo 是產品的名稱
我已經讓它像www.mysite.com/designer?product=foo 一樣作業,但我更喜歡第一個 url 的簡單性,我無法想象這是不可能的。
urlpatterns = [
path('', overview, name='overview'),
path('designer/', designer, name='designer'),
path('administration/', administration, name='administration'),
path('admin/', admin.site.urls),
]
我的 url 模式是這樣的,我試過在設計師之后使用“/”后面的正則運算式擺弄一些例子。但我無法讓它作業,服務器一直在運行
頁面未找到 (404) 請求方法:GET 請求 URL:http : //127.0.0.1 : 8000/designer/exampleA
恐怕我不知道從哪里開始尋找以及如何正確地提出我的問題,因為網路開發對我來說很陌生。
uj5u.com熱心網友回復:
您可以指定<str:designer>我們使用<str:…>路徑轉換器 [Django-doc] 的模式:
urlpatterns = [
path('', overview, name='overview'),
path('designer/<str:designer>/', designer, name='designer'),
path('administration/', administration, name='administration'),
path('admin/', admin.site.urls),
]
然后你的designer視圖函式應該designer作為引數并處理這個,所以:
def designer(request, designer):
# …
這designer是一個字串,因此'foo'如果您訪問./designer/foo/
uj5u.com熱心網友回復:
網址.py
urlpatterns = [
path('', overview, name='overview'),
path('designer/<str:no>', designer, name='designer'),
path('administration/', administration, name='administration'),
path('admin/', admin.site.urls),
]
視圖.py
def designer(request, no):
....
Django 動態 URL 模式
能夠在 HTTP 請求期間從給定 URL 捕獲一個或多個值是 Django 為開發人員提供的一項重要功能。我們已經了解了 Django 路由的作業原理,但這些示例使用了硬編碼的 URL 模式。雖然這確實有效,但它不能擴展。考慮一個有數千頁的網站。您不一定需要數以千計的路由來為這些頁面提供服務,但您確實需要能夠從 URL 捕獲變數,以便一種路由模式可以處理許多不同的頁面。在本教程中,我們將更多地探索 Django 中的動態 URL 模式和值。
尖括號 < > 要捕獲 URL 模式中的值,您可以使用尖括號。下面我們有上一教程中硬編碼的 URL 模式,以及我們如何使用尖括號將三個路由重寫為一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/352966.html
標籤:姜戈
下一篇:將Django資料限制為當前用戶
