我正在按照Django教程创建我的第一个网站.一切都在按计划进行,直到我到达涉及URL模式的那一步.具体地说,正是Include()函数使该项目偏离了轨道.当我读到本教程的这一点时,我在我的本地主机上运行了服务器.显示默认的Django安装成功主页,而不是"Hello World"文本,这是我的教程索引页面.我仔细判断了我的代码是否与我正在遵循的教程以及官方的Django教程相匹配,但我的结果没有改变.我已经判断了堆栈溢出的几个解决方案,但无法解决此问题.

/first_project/first_project/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("", include('first_app.urls')),
    path("admin/", admin.site.urls),
]

first_project/first_project/settings.py

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "first_app",
]

/first_project/first_app/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path("", views.index, name = "index"),
]

first_project/first_app/views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def index(request):
    return HttpResponse("Hello World")

关于堆栈溢出的建议之一是在first_project/first_project/urls.py下更改urlPatterns=[Path("",Include(‘first_app.urls’)),...]它最初读取路径("first_app/",Include("first_app.urls")).建议删除第一个"first_app",并将其更改为空白字段"".这并没有解决问题.

Edit- Requested project Hierarchy - Project Hierarchy

推荐答案

在按照建议重新开始项目并再次跟随教程查找错误后,我发现了错误.

让我感到困惑的是,这个教程已经有几年的历史了,并且使用了"url(r'^$'...)"作为urlPatterns.我错误地认为这个词已经被简单地替换为"path('', ...)".这并不是所有实例的直接替代.

我被要求对涉及"include()"函数和其他正则表达式的urlPatterns使用"re_path('r^....)".将代码更改为使用re_path(...)已修复所有问题.感谢你们所有人的帮助.

Django相关问答推荐

以特定顺序获取模型实例时出现问题

查询在对象中使用django查询与一个包含句子

Django中的登录重定向

在AWS s3中获取项目的URL

Django没有显示变量

我希望用户能够预订相同的桌子,但不是在同一时间

如何显示;Django认证系统;在模板中?

在 django HTML 邮箱模板中使用字体

PyCharm:强制 Django 模板语法突出显示

django - 表单没有错误,但 form.is_valid() 没有验证

可插拔应用程序的Django默认设置约定?

Django 相当于 COUNT 和 GROUP BY

如何测试某个日志(log)消息是否记录在 Django 测试用例中?

Django:如何从模板调用视图函数?

Django - 无法为具有动态 upload_to 值的 ImageField 创建迁移

在 Django 管理页面中注册应用程序中的每个表/类

Django 存储匿名用户数据

django 如何知道已经运行了哪些迁移?

如何在 Python 中运行另一个脚本而不等待它完成?

Django 测试客户端方法覆盖标头