我的Django网站的主页应该是一个应用程序吗?

时间:2016-10-06 19:46:03

标签: django

我已经阅读了Django官方教程,该教程教授如何创建一个简单的民意调查应用程序,这是他们选择向Django初学者教授基础知识的方式。 我的问题是,现在我知道如何创建一个简单的应用程序并想要创建我自己的网站(使用Django),我的网站的主(前)页面是否也应该是一个应用程序?如果是这样,人们通常如何调用它并对其进行配置?我的意思是,除了渲染一个html模板之外什么也不做,所以为什么要这么复杂呢?如果没有,我在哪里放置所有静态文件,如何引用它们?我有点困惑,可以使用你的帮助。也许我误解了Django的主要用途?

2 个答案:

答案 0 :(得分:7)

您可以在manage.py文件所在的根项目文件夹中创建模板和静态文件。在根文件夹中,创建以下文件夹:

  • templates(适用于HTML)
  • static(适用于CSS,JS和图片)

settings.py文件中,让这些变量看起来像这样:

TEMPLATES = [
    {
        ...
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        ...
    },
]

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

注意: STATICFILES_DIRS变量最初不在settings.py文件中,但您可以自行添加。默认情况下,Django在每个应用程序的static目录中查找静态文件。如果您希望Django读取您在项目根目录中创建的static目录,则需要添加此变量。 Django官方文档参考:https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-STATICFILES_DIRS

要呈现这些模板,您可以在views.py文件所在的目录中创建settings.py,并将urls.py中的路由添加到同一文件夹中。

这是实现目标的几种方法之一。希望您不需要将这些模板(例如,您的主页)插入或者说在任何其他项目中使用这些模板,否则请在帖子的评论中建议Timmy

答案 1 :(得分:4)

我通常从3个应用程序开始(随意调用它们):

  • base - 基本布局:一些常见的静态文件和一个基本模板(其他模板扩展了这一个,主要目的是 包括一个常见的html <head>)。还包含主页和其他一些简单的页面。

    main - 包含项目设置/配置,以及主urls.py(在我的情况下也包含wsgi.py)

    myapp - 我想要创建的实际应用。

这很好地区分了功能。通常,我可以将基础应用程序重新用于其他项目。