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中from module import * 的一个坑
Jul 20 Python
Python学习小技巧之列表项的拼接
May 20 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
Python基于dom操作xml数据的方法示例
May 12 Python
python将list转为matrix的方法
Dec 12 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python Dataframe常见索引方式详解
May 27 Python
Keras搭建自编码器操作
Jul 03 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 Python
Python3.10的一些新特性原理分析
Sep 15 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弹出错误警告函数扩展性强
2014/01/17 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
python实现跨文件全局变量的方法
2014/07/07 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
详解python中的Turtle函数库
2018/11/19 Python
Python 控制终端输出文字的实例
2019/07/12 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
超级搞笑检讨书
2014/01/15 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
小学生作文评语大全
2014/04/21 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
青春飞扬演讲稿
2014/09/11 职场文书