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中wx将图标显示在右下角的脚本代码
Mar 08 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
python清除字符串中间空格的实例讲解
May 11 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python绘制直方图和密度图的实例
Jul 08 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
详解Python文件修改的两种方式
Aug 22 Python
Python解析多帧dicom数据详解
Jan 13 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
python xlwt模块的使用解析
Apr 13 Python
django如何自定义manage.py管理命令
Apr 27 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 显示指定路径下的图片
2009/10/29 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
python 域名分析工具实现代码
2009/07/15 Python
浅析Python中的多重继承
2015/04/28 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
详解python进行mp3格式判断
2016/12/23 Python
解读python logging模块的使用方法
2018/04/17 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
县优秀教师事迹材料
2014/01/31 职场文书
思想品德课教学反思
2014/02/10 职场文书
鸟的天堂导游词
2015/01/31 职场文书
数学教师求职信范文
2015/03/20 职场文书
紫日观后感
2015/06/05 职场文书
会计岗位工作总结
2015/08/12 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技