首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么Django给我一个只有一个url模式的404错误?

为什么Django给我一个只有一个url模式的404错误?
EN

Stack Overflow用户
提问于 2020-04-15 05:56:35
回答 3查看 152关注 0票数 0

我正在学习thenewboston的Django教程,似乎没有人会遇到这个问题。

我已经创建了一个带有索引视图的音乐应用程序,效果很好。现在我想为音乐专辑创建详细的视图。

music.urls.py:

代码语言:javascript
代码运行次数:0
运行
复制
from django.urls import path
from . import views

urlpatterns = [
    # /music/
    path(' ', views.index, name='index'),

    # /music/21/
    path('music/<int:album_id>/', views.detail, name='detail'),
]

music.views.py:

代码语言:javascript
代码运行次数:0
运行
复制
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
return HttpResponse("<h1>This is the music app homepage")

def detail(request):
return HttpResponse("<h2>Detail " + str(album_id) + "</h2>")

我确实在Visual Studio代码中收到了一些警告,指出Django无法导入某些模块。但是如果这就是原因,那么url/music也应该返回一个404错误?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-15 07:07:13

URL参数在kwargs中,也称为命名参数

代码语言:javascript
代码运行次数:0
运行
复制
def detail(request, album_id):
    return HttpResponse("<h2>Detail " + album_id + "</h2>")

此外,您还应该更改您的URL路径,因为您已经包含了顶级lvl音乐的URL(否则它将通过/ URLconf /URLconf/{id}访问。

代码语言:javascript
代码运行次数:0
运行
复制
 path('<int:album_id>/', views.detail, name='detail'),

我建议您复习一下Django教程

票数 0
EN

Stack Overflow用户

发布于 2020-04-15 06:01:37

在python中使用snakecase命名。因此,请更改文件名并正确导入。

票数 0
EN

Stack Overflow用户

发布于 2020-04-15 06:03:55

将您的路径更改为此路径,因为在音乐中您已经传递了‘/ music.urls’

代码语言:javascript
代码运行次数:0
运行
复制
    path(r'<int:album_id>', views.detail, name='detail'),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61217917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档