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解析json实例方法
Nov 19 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
利用Python如何生成hash值示例详解
Dec 20 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
浅谈Python爬虫基本套路
Mar 25 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Python callable内置函数原理解析
Mar 05 Python
python中如何打包用户自定义模块
Sep 23 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 Python
Python超简单容易上手的画图工具库推荐
May 10 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 页面执行时间计算代码
2008/12/04 PHP
PHP 组件化编程技巧
2009/06/06 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
Python中Django 后台自定义表单控件
2017/03/28 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Python的垃圾回收机制详解
2019/08/28 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python解析json代码实例解析
2019/11/25 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Python之字典添加元素的几种方法
2020/09/30 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
学生学习总结的自我评价
2013/10/22 职场文书
中秋节主题班会
2015/08/14 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
vue动态绑定style样式
2022/04/20 Vue.js
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers