Django - 添加静态文件


创建静态文件夹

在构建 Web 应用程序时,您可能想要添加一些静态文件,例如图片或 css 文件。

首先创建一个名为static在您的项目中,您创建的同一位置templates文件夹:

文件夹的名称必须是static

my_tennis_club
    manage.py
    my_tennis_club/
    members/
        templates/
        static/

添加 CSS 文件static文件夹,名称是您选择的,我们将其命名为myfirst.css在这个例子中:

my_tennis_club
    manage.py
    my_tennis_club/
    members/
        templates/
        static/
            myfirst.css

打开 CSS 文件并插入以下内容:

my_tennis_club/members/static/myfirst.css:

body {
  background-color: lightblue;
  font-family: verdana;
}

修改模板

现在您有了一个带有一些 CSS 样式的 CSS 文件。下一步是将此文件包含在 HTML 模板中:

打开 HTML 文件并添加以下内容:

{% load static %}

和:

<link rel="stylesheet" href="{% static 'myfirst.css' %}">

示例

my_tennis_club/members/templates/template.html:

{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>

{% for x in fruits %}
  <h1>{{ x }}</h1>
{% endfor %}

</body>
</html>
运行示例 »

重新启动服务器以使更改生效:

py manage.py runserver

并在您自己的浏览器中查看结果:127.0.0.1:8000/testing/

没有工作?

只是测试?如果您只是想玩玩,而不打算部署您的工作,您可以设置DEBUG = True在里面settings.py文件,上面的例子就可以工作。

计划部署?如果您打算部署您的工作,您应该设置DEBUG = False在里面settings.py文件。上面的示例将失败,因为 Django 没有用于提供静态文件的内置解决方案,但是还有其他方法来提供静态文件,您将在下一章中了解如何进行。

示例(正在开发中):

my_tennis_club/my_tennis_club/settings.py:

.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
.
.

这将使示例正常工作,但我们希望您选择DEBUG = False,因为这是学习如何使用 Django 的最佳方式。


选择调试=假

对于本教程的其余部分,我们将运行DEBUG = False,即使是在开发中,因为这是学习如何使用 Django 的最佳方式。

例子:

my_tennis_club/my_tennis_club/settings.py:

.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']

.
.
ALLOWED_HOSTS

使用时DEBUG = False您必须指定允许哪些主机名来托管您的工作。你可以选择'127.0.0.1'或者'localhost'两者都代表您本地计算机的地址。

我们选择'*', 意思是任何地址被允许托管此站点。当您将项目部署到公共服务器时,应该将其更改为真实域名。


没有工作?

没错,就是这个例子仍然不起作用。

您将需要安装第三方库才能处理静态文件。

有很多替代方案,我们将向您展示如何使用名为的 Python 库白噪声在里面下一章