Django 系列官方教程[6]Static files

编程入门 行业动态 更新时间:2024-10-09 19:17:47

Django 系列官方<a href=https://www.elefans.com/category/jswz/34/1771193.html style=教程[6]Static files"/>

Django 系列官方教程[6]Static files

本教程从教程5结束的地方开始。我们已经构建了一个经过测试的web投票应用程序,现在我们将添加一个样式表和一个图像。


除了服务器生成的HTML之外,web应用程序通常还需要提供呈现完整网页所需的其他文件,如图像、JavaScript或CSS。在Django中,我们将这些文件称为“静态文件”。


对于小型项目来说,这不是什么大问题,因为您可以将静态文件保存在web服务器可以找到的地方。然而,在更大的项目中——尤其是由多个应用程序组成的项目中——处理每个应用程序提供的多组静态文件开始变得棘手。


这就是django.contrib.staticfiles的用途:它将来自每个应用程序(以及您指定的任何其他位置)的静态文件收集到一个位置,以便在生产中轻松提供服务。

一、自定义软件的外观

首先,在polls目录中创建一个名为static的目录。Django将在那里查找静态文件,类似于Django在polls/templates/中查找模板的方式。


Django的STATICFILES_FINDERS设置包含一个查找程序列表,这些查找程序知道如何从各种来源查找静态文件。默认设置之一是AppDirectoriesFinder,它在每个已安装的应用程序中查找“静态”子目录,就像我们刚刚创建的轮询中一样。管理站点对其静态文件使用相同的目录结构。


在刚刚创建的静态目录中,创建另一个名为polls的目录,并在其中创建一个名为style的文件。css。换句话说,你的样式表应该是polls/static/polls/style.css。由于AppDirectories finder staticfile finder的工作方式,您可以在Django中将此静态文件称为polls/style.css,类似于模板的引用路径。


就像模板一样,我们可以直接将静态文件放在polls/static中(而不是创建另一个polls子目录),但这实际上是个坏主意。Django将选择它找到的第一个名称匹配的静态文件,如果在不同的应用程序中有一个同名的静态文件,Django将无法区分它们。我们需要能够将Django指向正确的一个,而确保这一点的最佳方法是给它们命名。也就是说,将这些静态文件放在另一个以应用程序本身命名的目录中。

现在我们来修改样式polls/static/polls/style.css

li a {color: green;
}

现在在polls/templates/polls/index.html中加入:

{% load static %}<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">

这就是我们需要做的所有事情。

开启服务看看效果吧:

python manage.py runserver

打开http://localhost:8000/polls/,发现绿了。

二、添加背景图片。

接下来,我们将为图像创建一个子目录。在polls/static/polls/目录中创建一个images子目录。在这个目录中,放置一个名为background.gif。换句话说,把你的图片放在polls/static/polls/images/background.gif。

不是由Django生成的静态文件不能使用{%static%}模板标记,比如样式表。您应该始终使用相对路径在彼此之间链接静态文件,因为这样您就可以更改静态URL(由静态模板标记用于生成其URL),而无需修改静态文件中的一组路径。

更多推荐

Django 系列官方教程[6]Static files

本文发布于:2024-02-06 02:13:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1745850.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:教程   系列   官方   Django   Static

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!