Привет сообщество StackOverflow,
В настоящее время я учусь использовать библиотеку Django в сочетании с Python. Тем не менее, я столкнулся с некоторыми проблемами, которые как-то странно. Моя ситуация следующая. У меня есть проект под названием «животные», который является основой приложения Django. Мое приложение называется "опросы". Затем я определил следующие представления:
polls / 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.
polls / 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 был в порядке, проблема заключалась в файле animals / urls.py . Этот файл выглядел так:
animals / 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')),
]
Как можно видеть, путь "опросов" не заканчивается символом "/"подписать. Это указывает Django, что мой желаемый маршрут будет localhost: 8000 / polls где любое целое число, которое я добавлю к URL. Тем не менее, вы должны добавить косую черту в конце. В противном случае Django не будет работать должным образом.