【发布时间】:2020-07-18 08:05:10
【问题描述】:
我正在编写一个代码来将 url '/products/new' 映射到它的视图函数'new'。我没有从“新”获取 HttpResponse,而是得到了“index”函数的 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 我得到相同的结果是“这是主页” 我不知道发生了什么。请帮忙。
【问题讨论】:
-
除了使用
include()时,url()正则表达式通常应该以美元结尾以匹配字符串的结尾。例如,应该是url(r'^$', views.index),。 -
为什么选择 django 1.11?它已经过时了。
-
@alasdair 是的,应该是。我也这样做了。但我得到相同的结果。不知道为什么它只是映射 /products/ 而不是映射 /products/new
-
@TheGuardener 是的。我也不想要它,但由于锁定我的系统和其他东西卡在其他地方。我正在使用本身已经过时的其他系统。
-
@WonderwareInTouchUsers 好的。但是更新没那么难
标签: python django django-views url-routing