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实现异步回调机制代码分享
Jan 10 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
python实现按任意键继续执行程序
Dec 30 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python导入模块时遇到的错误分析
Aug 30 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
基于python3生成标签云代码解析
Feb 18 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
python破解同事的压缩包密码
Oct 14 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
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
php实现微信发红包
2015/12/05 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
python中reload重载实例用法
2020/12/15 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
大学本科毕业生求职信范文
2013/12/18 职场文书
给面试官的感谢信
2014/02/01 职场文书
工地标语大全
2014/06/18 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
单位委托书
2014/10/15 职场文书
公司管理制度范本
2015/08/03 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏