[英]Url mapping to views in django 1.11
我正在將代碼寫入 map 和 url '/products/new' 到它的視圖 function 'new'。 我沒有從“new”獲取 HttpResponse,而是得到了“index”function 的 HttpResponse,它也在 views.py 中
我在 products.py 中的 views.py 代碼是——
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('This is home page')
def new(request):
return HttpResponse('New Products')
我在 products.py 中的 urls.py 代碼是——
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^', views.index),
url(r'^new', views.new)
]
我在項目文件中的 urls.py 文件是——
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^products/', include('products.urls'))
]
現在,當我訪問 127.0.0.1:8000/products 時,我得到想要的結果,即“這是主頁”但是當我訪問 127.0.0.1:8000/products/new 甚至 127.0.0.1:8000/products/new/xxx /xxx /products 之后的任何隨機文本我得到相同的結果,即“這是主頁”我不知道發生了什么。 請幫忙。
在您的項目 urls.py 中添加此 url 模式
url(r'^products/(?P<new>)/$', views.new),
@alasdair 謝謝。
將美元添加到 r'^new/$' 是正確的,因為它會阻止它匹配 new/something/else。 但是它通過阻止它匹配新的來解決問題,將美元添加到 ^$
所以產品應用程序的 urls.py 中的更正代碼是 -
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$', views.index),
url(r'^new/$', views.new)
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.