django模板加载静态文件的方法步骤


Posted in Python onMarch 01, 2019

加载静态文件

在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等。因此在 DTL 中加载静态文件是一个必须要解决的问题。在 DTL 中,使用 static 标签来加载静态文件。要使用 static 标签,首先需要 {% load static %} 。加载静态文件的步骤如下:

首先确保 django.contrib.staticfiles 已经添加到 settings.INSTALLED_APPS 中。

确保在 settings.py 中设置了 STATIC_URL 。

在已经安装了的 app 下创建一个文件夹叫做 static ,然后再在这个 static 文件夹下创建一个当前 app 的名字的文件夹,再把静态文件放到这个文件夹下。例如你的 app 叫做 book ,有一个静态文件叫做 zhiliao.jpg ,那么路径为 book/static/book/zhiliao.jpg 。(为什么在 app 下创建一个 static 文件夹,还需要在这个 static 下创建一个同 app 名字的文件夹呢?原因是如果直接把静态文件放在 static 文件夹下,那么在模版加载静态文件的时候就是使用 zhiliao.jpg ,如果在多个 app 之间有同名的静态文件,这时候可能就会产生混淆。而在 static 文件夹下加了一个同名 app 文件夹,在模版中加载的时候就是使用 app/zhiliao.jpg ,这样就可以避免产生混淆。)

如果有一些静态文件是不和任何 app 挂钩的。那么可以在 settings.py 中添加 STATICFILES_DIRS ,以后 DTL 就会在这个列表的路径中查找静态文件。比如可以设置为:

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

在模版中使用 load 标签加载 static 标签。比如要加载在项目的 static 文件夹下的 style.css 的文件。那么示例代码如下:

{% load static %}
   <link rel="stylesheet" href="{% static 'style.css' %}" rel="external nofollow" >

如果不想每次在模版中加载静态文件都使用 load 加载 static 标签,那么可以在 settings.py 中的 TEMPLATES/OPTIONS 添加 'builtins':['django.templatetags.static'] ,这样以后在模版中就可以直接使用 static 标签,而不用手动的 load 了。

如果没有在 settings.INSTALLED_APPS 中添加 django.contrib.staticfiles 。那么我们就需要手动的将请求静态文件的 url 与静态文件的路径进行映射了。示例代码如下:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
  # 其他的url映射
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 多线程应用介绍
Dec 19 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
Python2与Python3的区别实例分析
Apr 11 Python
Python列表的切片实例讲解
Aug 20 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 #Python
Python multiprocessing多进程原理与应用示例
Feb 28 #Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 #Python
python使用phoenixdb操作hbase的方法示例
Feb 28 #Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
Feb 28 #Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 #Python
django模板结构优化的方法
Feb 28 #Python
You might like
PHP array操作10个小技巧分享
2011/06/23 PHP
PHP中PDO的错误处理
2011/09/04 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
javascript prototype,executing,context,closure
2008/12/24 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
vue中component组件的props使用详解
2017/09/04 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
实例Python处理XML文件的方法
2015/08/31 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
高中打架检讨书
2014/02/13 职场文书
企业安全生产标语
2014/06/06 职场文书
防暑降温通知书
2015/04/27 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
python之json文件转xml文件案例讲解
2021/08/07 Python