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 26进制计算实现方法
May 28 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
python将txt文件读取为字典的示例
Dec 22 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
Python实现图片添加文字
Nov 26 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
解决jupyter运行pyqt代码内核重启的问题
Apr 16 Python
python3中sys.argv的实例用法
Apr 24 Python
python如何将图片转换素描画
Sep 08 Python
python实现PolynomialFeatures多项式的方法
Jan 06 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程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
JavaScript小技巧 2.5 则
2010/09/12 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
python实现感知器
2017/12/19 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
python中的itertools的使用详解
2020/01/13 Python
浅谈python 类方法/静态方法
2020/09/18 Python
python 实现端口扫描工具
2020/12/18 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
新年抽奖获奖感言
2014/03/02 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
消防安全标语
2014/06/07 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
工程部岗位职责范本
2015/04/11 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
Python集合set()使用的方法详解
2022/03/18 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
Python实现仓库管理系统
2022/05/30 Python