8-Django静态文件访问

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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应用和分布式路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值