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中列表元素转为数字的方法分析
Jun 14 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
python爬取哈尔滨天气信息
Jul 14 Python
在python里面运用多继承方法详解
Jul 01 Python
python构造函数init实例方法解析
Jan 19 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
python实现小程序推送页面收录脚本
Apr 20 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
Python中SQLite如何使用
May 27 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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知道与问问的采集插件代码
2010/10/12 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
python list多级排序知识点总结
2019/10/23 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
python中selenium库的基本使用详解
2020/07/31 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
婚前保证书
2014/04/29 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
具结保证书范本
2015/05/11 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Nginx 常用配置
2022/05/15 Servers