gpt4 book ai didi

django - 我的第一个 Django 项目

转载 作者:行者123 更新时间:2023-12-04 06:47:53 25 4
gpt4 key购买 nike

我开始阅读 Django 权威指南,现在想开始做我自己的项目。我已经设置了 Django 和所有东西。我创建了一个名为 djangoproject1 的项目。基本上我想要的是主页是注册/登录页面。我用于 djangoproject1 的 urls.py 如下所示:

urlpatterns = patterns('',
(r'^/',include('djangoproject1.authentication.urls')),
)

我在 djangoproject1 下有一个名为 authentication 的 pydev 包(应用程序),它有一个 urls.py,如下所示:
urlpatterns = patterns('',
(r'^$',direct_to_template,{'template':'index.html'}),
)

几个问题:
  • 我收到一个页面未找到错误,这意味着我可能在做我的映射/包含错误
  • 如果我没有在 settings.py 中的 TEMPLATE_DIRS 下指定任何内容,我的理解是 Django 将在每个包中查找名为模板的目录。那是对的吗?
  • 最佳答案

    Asinox 所说的并非事实。您可能有一个全局模板目录,甚至其中几个。但这不是必须的。

    实际上模板加载是这样完成的:

  • Django 从 TEMPLATE_LOADERS 中获取头等名称设置变量
  • 它根据名称
  • 实例化模板加载器
  • 它尝试使用此实例加载模板
  • 如果成功 - 模板返回
  • 如果加载模板失败 - 它将使用下一个名称并从 2 重新开始。
  • 如果 TEMPLATE_LOADERS 中没有列出任何模板加载器成功加载模板 TemplateDoesNotExist引发异常

  • 默认 TEMPLATE_LOADERS被设定为
    TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
    )

    正如马修所说 TEMPLATE_DIRS仅供 filesystem.load_template_source 使用装载机。因此,如果您将其从列表中排除,它根本不会对模板加载过程产生任何影响。

    为了找到您的模板,我建议您执行以下操作:
  • 使您的 index.html 命名空间,即按如下方式放置:
  • .`-- djangoproject1    `-- authentication        `-- templates            `-- authentication                `-- index.html
    • Load the template namespaced:

    urlpatterns = patterns('',
    (r'^$', direct_to_template, {'template': 'authentication/index.html'}),
    )

    除非您这样做,否则您无法确定 Django 从身份验证应用程序加载 index.html。

    考虑 app_directories.load_template_source 的行为模板加载器。

    假设您刚刚定义了两个应用程序 app1 和 app2(未定义其他应用程序)并要求加载模板“path/to/template.html”。

    加载程序将不按特定顺序检查以下路径:
  • project_root/app1/templates/path/to/template.html
  • project_root/app2/templates/path/to/template.html
  • 关于django - 我的第一个 Django 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516146/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com