【问题标题】:Django Beginner: Project LayoutDjango 初学者:项目布局
【发布时间】:2013-03-18 09:28:51
【问题描述】:

这是我第一次使用 Django,虽然我发现他们提供的教程非常有帮助,但我在推进我的项目时遇到了一个主要问题。

到目前为止,Django 最令人困惑的方面是项目中文件的布局。截至目前,我的项目布局如下:

webapp/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    app/
        __init__.py
        models.py
        tests.py
        views.py

请注意这里的命名,我创建了一个 Django 项目“mysite”和一个应用程序“app”。以下是我发现自己不断重复的问题:

  1. 我注意到在 mysite/settings.py 中有一个应用程序部分,我是否会在完成后将我在此项目中编写的应用程序包含在该部分中?

  2. 如果我想创建一个简单的 index.html 页面,这样的文件在这个项目组织中应该放在哪里?

  3. 我了解到,CSS 或图像文件等静态内容需要包含在一个简单的“静态”目录中。这将在这个项目组织中去哪里? [这仅用于调试目的,我已经读过这不应该用于生产]

我现在的主要目标是在开始深入研究我正在创建的应用程序的模型和视图之前能够查看一个简单的 html 网站。

【问题讨论】:

    标签: html django web


    【解决方案1】:
    1. 如果您的应用需要一个或多个设置变量,那么可以,您可以将它们放入mysite/settings.py

    2. 创建一个新文件夹mysite/templates/。这是您要放置模板文件的位置。组织每个应用程序的模板:mysite/templates/app/ 将拥有您的应用程序视图使用的模板。如果您想提供静态模板,例如简单的静态index.html,那么只需将该文件放入mysite/templates/index.html,然后将以下内容添加到您的urls.py 文件中(无需为索引创建视图):

      (r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'index.html'}),
      
    3. 在您运行collectstatic 命令后,静态内容会以类似mysite/static 的形式结束。见managing static filescollectstatic 命令在STATICFILES_DIRS 指定的所有位置搜索静态文件,并将它们部署到STATIC_ROOT 指定的文件夹(mysite/static)中。

    【讨论】:

    • 这很棒。太感谢了。关于您对 #2 的回复的最后一个问题:django.views.generic.simple.direct_to_template,我将在哪里导入它以便我的应用程序可以找到它?
    • 在您的urls.py 中,您可以像这样导入它:from django.views.generic.simple import direct_to_template。但是,在我给您的示例中,您实际上不需要导入它。如果您使用以下内容,那么您确实需要导入direct_to_template(r'^$', direct_to_template, {'template': 'index.html'})
    • 嗯,我收到了您所写内容的 ViewDoesNotExist 错误。我尝试直接导入它,它说 django.views.generic.simple 不存在?
    • 这可能是您定义网址的方式。这是使用通用视图的示例:from django.conf.urls import patterns, url, include from django.views.generic.simple import direct_to_template urlpatterns = patterns('', ('^about/$', direct_to_template, { 'template': 'about.html' }) ) 查看generic views 上的文档。
    • 是的,它似乎实际上在 django 1.5 中不存在。生病检查该链接,并找到一个等价物。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多