1、 什么是静态文件
图片、css、js、音频、视频等都属于静态文件
2、静态文件配置
(1)在setting.py 中配置静态文件的访问路径
''' STATIC_URL用于配置指定通过那个URL地址访问静态文件'''
STATIC_URL = '/statics/' # http://127.0.0.1:8000/statics/
''' STATICFILES_DIRS 用于配置静态文件的存储路径,即静态文件在服务器端的存储位置'''
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 元组
(2)模板中静态文件访问
方案1 --直接拼接访问路径
<img src="http://127.0.0.1:8000/static/image/django.jpg" width="200px" height="200px">
<img src="/static/image/django.jpg" width="200px" height="200px">
方案2 --img标签为例
通过 {%static%} 标签访问静态文件
步骤:
① 加载static —》{%load static%}
② 使用静态资源 —》 {%static ’静态资源路径‘ %}
样例:
<!--方案2访问静态文件 image/cloud.jpeg 前面不需要加/,只要指出static下那个文件夹即可-->
<!--推荐使用2-->
{% load static %}
<img src="{% static 'image/cloud.jpeg' %}" width="200px" height="200px">
3、案例
setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 元组
#其他
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
# 注释MIDDLEWARE中的csrf
urls.py
path('test_static', views.test_static),
views.py
from django.shortcuts import render
def test_static(request):
return render(request, 'test_static.html')
templates/test_static.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试静态文件</title>
</head>
<body>
<!--方案1访问静态文件-->
<img src="http://127.0.0.1:8000/static/image/django.jpg" width="200px" height="200px">
<img src="/static/image/django.jpg" width="200px" height="200px">
<!--方案2访问静态文件 image/cloud.jpeg 前面不需要加/,只要指出static下那个文件夹即可-->
<!--推荐使用2-->
{% load static %}
<img src="{% static 'image/cloud.jpeg' %}" width="200px" height="200px">
</body>
</html>
目录结构如下,在项目下建static/image文件夹,存放了2张图片

启动浏览器输入:http://127.0.0.1:8000/test_static

方案二更加具有动态性
例如,在setting.py 中修改 为’/statics/‘,
STATIC_URL = '/statics/'
再次访问,查看源代码码,只有方案二动态变为statics,其他的还是static,所以只可以访问到第三张图片
查看源码如下:

下一篇:Django应用和分布式路由
本文介绍了Django中静态文件的定义,包括图片、css和js等,并详细阐述了如何配置静态文件路径,以及在模板中使用{%static%}标签进行访问。通过一个实例展示了在settings.py、urls.py、views.py和templates中的具体操作,强调方案二的动态性,能根据设置调整静态文件路径。

被折叠的 条评论
为什么被折叠?



