静态文件设置

静态文件是 CSS、JavaScript、字体、图像或我们可能用来组成用户界面的任何其他资源。

事实上,Django 不提供这些文件。除了在开发过程中,所以让我们的生活更轻松。但是 Django 提供了一些功能来帮助我们管理静态文件。这些功能在配置中已经列出的django.contrib.staticfiles 应用程序中可用 INSTALLED_APPS

有这么多可用的前端组件库,我们没有理由继续渲染基本的 HTML 文档。我们可以轻松地将 Bootstrap 4 添加到我们的项目中。Bootstrap 是一个开源工具包,用于使用 HTML、CSS 和 JavaScript 进行开发。

在项目根目录中,与boardtemplatesmyproject 文件夹一起,创建一个名为static 的新文件夹,并在static 文件夹中创建另一个名为css 的 文件夹:

myproject/
 |-- myproject/
 |    |-- boards/
 |    |-- myproject/
 |    |-- templates/
 |    |-- static/       <-- here
 |    |    +-- css/     <-- and here
 |    +-- manage.py
 +-- venv/

转到getbootstrap.com并下载最新版本:

引导程序下载

下载已编译的 CSS 和 JS 版本。

在你的电脑中,解压你从 Bootstrap 网站下载的bootstrap-4.0.0-beta-dist.zip 文件,将文件css/bootstrap.min.css 复制到我们项目的 css 文件夹中:

myproject/
 |-- myproject/
 |    |-- boards/
 |    |-- myproject/
 |    |-- templates/
 |    |-- static/
 |    |    +-- css/
 |    |         +-- bootstrap.min.css    <-- here
 |    +-- manage.py
 +-- venv/

下一步是指示 Django 在哪里找到静态文件。打开settings.py ,滚动到文件底部,在 之后 STATIC_URL,添加以下内容:

STATIC_URL = '/static/'

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

TEMPLATES目录相同,还记得吗?

现在我们必须在我们的模板中加载静态文件(Bootstrap CSS 文件):

templates/home.html

{% load static %}<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Boards</title>
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
  </head>
  <body>
    <!-- body suppressed for brevity ... -->
  </body>
</html>

首先,我们使用模板开头的加载静态文件应用模板标签。<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">load</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>

模板标签用于组成资源所在的 URL。在这种情况下,将返回/static/css/bootstrap.min.css,相当于http://127.0.0.1:8000/static/css/bootstrap.min.css。<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>`<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">'css/bootstrap.min.css'</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>`

该模板标签使用配置在settings.py组成最终的URL。例如,如果您将静态文件托管在像https://static.example.com/这样的子域中 ,我们将设置然后 返回 https://static.example.com/css/bootstrap.min.css<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>`STATIC_URLSTATIC_URL=https://static.example.com/<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">'css/bootstrap.min.css'</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>`

如果目前这些对您都没有意义,请不要担心。只要记住 在需要引用 CSS、JavaScript 或图像文件时使用 。稍后,当我们开始使用 Deployment 时,我们将对其进行更多讨论。现在,我们都准备好了。<span class="p">{</span><span class="err">%</span><span class="w"><span> </span></span><span class="err">static</span><span class="w"><span> </span></span><span class="err">%</span><span class="p">}</span>

刷新页面127.0.0.1:8000 我们可以看到它起作用了:

Boards 主页 Bootstrap

现在我们可以编辑模板以利用 Bootstrap CSS:

{% load static %}<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Boards</title>
    <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
  </head>
  <body>
    <div class="container">
      <ol class="breadcrumb my-4">
        <li class="breadcrumb-item active">Boards</li>
      </ol>
      <table class="table">
        <thead class="thead-inverse">
          <tr>
            <th>Board</th>
            <th>Posts</th>
            <th>Topics</th>
            <th>Last Post</th>
          </tr>
        </thead>
        <tbody>
          {% for board in boards %}
            <tr>
              <td>
                {{ board.name }}
                <small class="text-muted d-block">{{ board.description }}</small>
              </td>
              <td class="align-middle">0</td>
              <td class="align-middle">0</td>
              <td></td>
            </tr>
          {% endfor %}
        </tbody>
      </table>
    </div>
  </body>
</html>

现在的结果:

Boards 主页 Bootstrap

到目前为止,我们正在使用交互式控制台 ( python manage.py shell)添加新板。但是我们需要一个更好的方法来做到这一点。在下一节中,我们将实现一个管理界面,供网站管理员管理。

Django Admin 简介

当我们开始一个新项目时,Django 已经配置了.django 文件中 列出的Django Admin INSTALLED_APPS

Django 管理员漫画

Django Admin 的一个很好的用例是在博客中;作者可以使用它来撰写和发表文章。另一个例子是电子商务网站,员工可以在其中创建、编辑、删除产品。

现在,我们将配置 Django Admin 来维护我们应用程序的板。

让我们从创建管理员帐户开始:

python manage.py createsuperuser

按照说明操作:

Username (leave blank to use 'vitorfs'): admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.

现在在 Web 浏览器中打开 URL:http : //127.0.0.1 : 8000/admin/

Django 管理员登录

输入用户名密码 登录管理界面:Django 管理员

它已经配置了一些功能。在这里我们可以添加用户 来管理权限。稍后我们将探讨更多这些概念。

添加Board 模型非常简单。打开boards目录下的admin.py 文件,添加如下代码:

*boards/admin.py*

from django.contrib import admin
from .models import Board

admin.site.register(Board)

保存admin.py 文件,并在 Web 浏览器上刷新页面:

Django 管理板

就是这样!它可以使用了。单击Boards 链接以查看现有板的列表:

Django 管理板列表

我们可以通过单击“*Add Board* 按钮来添加新板:

Django Admin Boards Add

点击保存 按钮:

Django 管理板列表

我们可以通过打开http://127.0.0.1:8000 URL来检查是否一切正常:

董事会主页

结论

在本教程中,我们探索了许多新概念。我们为我们的项目定义了一些需求,创建了第一个模型,迁移了数据库,开始使用模型 API。我们创建了第一个视图并编写了一些单元测试。我们还配置了 Django 模板引擎、静态文件,并将 Bootstrap 4 库添加到项目中。最后,我们对 Django Admin 界面做了一个非常简单的介绍。

django-beginners-guide-0.2-lw.zip:

(访问密码:3604)

最后修改:2021 年 06 月 14 日
如果觉得我的文章对你有用,请随意赞赏