簡體   English   中英

Url 映射到 django 1.11 中的視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM