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的类变量和成员变量用法实例教程
Aug 25 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
Python BS4库的安装与使用详解
Aug 08 Python
提升Python程序性能的7个习惯
Apr 14 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
python实现图片中文字分割效果
Jul 22 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
超级实用的8个Python列表技巧
Aug 24 Python
Python中相见恨晚的技巧
Apr 13 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
java script编程起步(第三课)
2007/01/10 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python学习笔记之os模块使用总结
2014/11/03 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
简单实现python进度条脚本
2017/12/18 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
档案检查欢迎词
2014/01/13 职场文书
毕业自我评价
2014/02/05 职场文书
大学信息公开实施方案
2014/03/09 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
大学课外活动总结
2014/07/09 职场文书
室内趣味活动方案
2014/08/24 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
单方投资意向书
2015/05/11 职场文书
vue router 动态路由清除方式
2022/05/25 Vue.js