python - 无法通过参数化 url 访问 Django
问题描述
你好 StackOverflow 社区,
我目前正在学习如何将库 Django 与 Python 结合使用。但是,我遇到了一些奇怪的问题。我的情况如下。我有一个名为“animals”的项目,它是 Django 应用程序的基础。我的应用程序称为“民意调查”。然后我定义了以下视图。
民意调查/views.py
from django.shortcuts import render
from django.http import HttpResponse
def animals(request, animal_id):
return HttpResponse("%s" % animal_id)
def index(request):
return HttpResponse('Hello world')
到目前为止,一切都很好。不幸的是,我不能对 urlpatterns 说同样的话。
民意调查/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index'),
# Redirects to localhost:8000/polls/<animal_id>
path('<int:animal_id>/',views.animals,name='animals')
]
每当我想导航到 url "localhost:8000/polls/10/" 时,Django 都会提醒我这样一个事实,即应用程序不接受该 url,并且在我的浏览器中抛出了 404 错误。我在这里错过了什么吗?
更新
我设法通过修复一个相当微不足道的错误来解决这个问题。虽然polls/urls.py 没问题,但问题出在animal/urls.py文件中。这个文件看起来像这样:
动物/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.urls import include,path
urlpatterns = [
url(r'^admin/', admin.site.urls),
path('polls',include('polls.urls')),
]
可以看到,“polls”路径没有以“/”符号结束。这向 Django 表明我想要的路由是localhost:8000/polls,其中是我添加到 url 的任何整数。但是,您必须在末尾添加斜线。否则 Django 将无法按预期工作。
解决方案
推荐阅读
- orm - 原则 3:一对一的单向关系不会返回所有字段
- flutter - 超类'Bloc
' 在 dart 中没有零参数构造函数 - java - 在 GridPane FXML JavaFX 上添加动态按钮
- reactjs - 如何在当前状态下调用一次函数
- java - Fragment recyclerview 点击打开另一个片段
- java - AppEngine 应用程序:Cloud Profiler 中 CPU 时间和 Wall time 之间的巨大差异
- python - TypeError: an integer is required when using Cython
- c - 用 ? 解释 C 表达式 : 和 >
- reactjs - Pnp Js 与 Sharepoint spfx ListItemPicker
- python - 姜戈 | 从每件商品的价格和金额生成总价?