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实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
python日志记录模块实例及改进
Feb 12 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
Python生成器generator用法示例
Aug 10 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
python通过移动端访问查看电脑界面
Jan 06 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
python实现斗地主分牌洗牌
Jun 22 Python
Python jieba库分词模式实例用法
Jan 13 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
香妃
2021/03/03 冲泡冲煮
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
jQuery示例收集
2010/11/05 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
js编写简易的计算器
2020/07/29 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
门卫人员岗位职责
2013/12/24 职场文书
学生励志演讲稿
2014/01/06 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
大一新生期末自我评价
2014/09/12 职场文书
贷款收入证明范本
2015/06/12 职场文书
新闻稿怎么写
2015/07/18 职场文书
python数字图像处理:图像的绘制
2022/06/28 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技