2.8.5Django --4.4 静态文件之static
Django目录:https://blog.****.net/qq_41106844/article/details/105554082
什么是静态文件
.css文件,.js文件,各类图片文件。
Django为什么要有static
出于对效率和安全的考虑,django管理静态文件的功能仅限于在开发阶段的debug模式下使用,且需要在配置文件的INSTALLED_APPS中加入django.contrib.staticfiles(django工程创建后默认已经安装),网站正式部署上线后,静态文件是由Nginx等服务器管理。
注意:
Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。
当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供。
static如何配置
首先确保在配置文件的INSTALLED_APPS中加入了 django.contrib.staticfiles(默认已加入)
在配置文件中配置STATIC_URL
以及STATIC_DIRS
之后就能新建一个文件夹叫static
他与templates同级
使用static
引入静态文件:
在html文件头部加上:{% load static %}
既然使用它需要引入,那么代表他并不是我们Django模块内置的模板标签。
我们按住Ctrl+b,点击static。
注释:将静态文件的绝对路径返回给使用这个标签html文件。相当于起到一个传递作用。
之后我们就能用 link , style或img 之类的标签引入静态文件,但是在 href 参数需要按照规定的格式:{% static "url.."%}。
例子:我们需要在模板中引入/static/css/下的bootstrap.css
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
而在浏览器看他的时候,浏览器是这么显示的:
<link rel="stylesheet" href="/st/css/bootstrap.css">
一个简单的实例
我们用echarts做一个简单的温度折线图:
目录树
tq.html
{%load static %}
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>Title
<script src="{%static 'js/echarts.js' %}">
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main" style="width:600px;height:400px;">
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart =echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text:'未来一周气温变化'
},
tooltip: {},
legend: {},
toolbox: {},
xAxis: [{
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
}],
yAxis: { },
series: [{
name:'最高气温',
type:'line',
data:[20,23,29,25,26,21,25]
},
{
name:'最低气温',
type:'line',
data: [10,13,15,9,11,10,13]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</html>