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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 Python
使用python实现mqtt的发布和订阅
May 05 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python isinstance函数用法详解
Feb 13 Python
PyCharm 专业版安装图文教程
Feb 20 Python
Django 404、500页面全局配置知识点详解
Mar 10 Python
Django Form设置文本框为readonly操作
Jul 03 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
python SocketServer源码深入解读
2019/09/17 Python
python和go语言的区别是什么
2020/07/20 Python
如何填写个人简历自我评价
2013/12/10 职场文书
公司薪酬管理制度
2014/01/31 职场文书
少先队入队活动方案
2014/02/08 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
初中英语课后反思
2014/04/25 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
文明倡议书
2015/01/19 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
交通事故调解协议书
2015/05/20 职场文书
国家助学金受助感言
2015/08/01 职场文书
公司员工离职感言
2015/08/03 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery