繁体   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