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将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
python实现的文件夹清理程序分享
Nov 22 Python
python sys.argv[]用法实例详解
May 25 Python
python 调用有道api接口的方法
Jan 03 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
python中使用while循环的实例
Aug 05 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
pandas中DataFrame检测重复值的实现
May 26 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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 输出简单动态WAP页面
2009/06/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
PHP pear安装配置教程
2016/05/14 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
浅谈node的事件机制
2017/10/09 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python创建文件备份的脚本
2018/09/11 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python中Lambda表达式详解
2019/11/20 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
美国一站式电动和手动工具商店:International Tool
2020/11/26 全球购物
一些Solaris面试题
2015/12/22 面试题
经典导游欢迎词大全
2014/01/16 职场文书
学生期末评语大全
2014/04/30 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
人口与计划生育责任书
2015/05/09 职场文书