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的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python守护进程实现过程详解
Feb 10 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python 如何对文件目录操作
Jul 10 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python字符串常规操作大全
May 02 Python
Python实现智慧校园自动评教全新版
Jun 18 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 Python
python计算列表元素与乘积详情
Aug 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中的生成器和yield详细介绍
2015/01/09 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
基于Python函数和变量名解析
2019/07/19 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
中文专业毕业生自荐信
2013/10/28 职场文书
小学美术教学反思
2014/02/01 职场文书
简单租房协议书
2014/10/21 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
centos8安装MongoDB的详细过程
2021/10/24 MongoDB