Django之静态文件

在介绍分布式路由之前,先介绍下静态文件,比如图片,音视频文件,这些都属于静态文件。以百度首页为例:
在这里插入图片描述

大部分都是静态文件,以图片为例,浏览器加载img标签,解读里面的src属性,对src里面的地址发http请求,当浏览器接收到响应的时候,进行渲染并展示。那在djnango发送静态文件,如何使用呢?
在settings.py中,配置静态文件的访问路径[默认是配置了的]

STATIC_URL = '/static/'

访问静态文件时,通过/static/xxx或者http://127.0.0.0:8000/static/xxx,其中[xxx表示具体的静态资源位置],这些静态文件一定是存放在服务器上的,那如何得知存放在服务器的什么位置呢,此时需要使用到第二项功能。
配置静态文件的存储路径 STATICFILES_DIRS,STATICFILES_DIRS保存的是静态文件在服务器上的存放位置。

#file:settings.py
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

我们创建一个mysite3的项目,结合上面介绍的知识进行学习

F:\Django\DjangoStudy>django-admin startproject mysite3

在这里插入图片描述
同样设置下setting.py中的crsf(注释),将语言设置为中文 TIME_ZONE = ‘Asia/Shanghai’,已经设置时区和配置静态文件的存放位置,配置模板文件的路径

#设置模板文件的路径
'DIRS': [os.path.join(BASE_DIR,'templates')],

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

#配置静态文件访问路径,默认已有
STATIC_URL = '/static/'
#配置静态文件的存放位置,手动新增
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)

在这里插入图片描述
按照如上的目录层级创建文件夹,比如这里创建了静态文件路径,在static路径下,创建了image和js路径,这里举例说明,在image下添加一个djagno.jpg的图片。接着在urls.py中新增路由

from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test_static',views.test_static)
]

在mysite3二级子目录下新增一个views.py文件,并新增视图函数

from django.shortcuts import render


def test_static(reqeust):
    return render(reqeust,'test_static.html')

在templates目录下新增一个test_static.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试静态文件</title>
</head>
<body>

<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">
</body>
</html>

加载静态资源的方式可以通过绝对路径和相对路径的两种方式
整体目录结构如下所示:
在这里插入图片描述
虽然以上两种方法可以加载静态资源,但这两种方法很不Django;使用django的方式访问静态文件,通过{% static %}标签访问静态文件,

  • 加载static- {% load static %}
  • 使用静态资源-{% staitc ‘静态资源路径’ %}
  • 样例 < img src="{% staitc ‘image/django.jpg’ %}" >
    在test_static.html中新增一个django方式的加载图片
{% load static %}
<img src="{% static 'image/django.jpg' %}" width="200px" height="200px">

运行结果如下所示,依次展示为绝对路径,相对路径,和django方式的路径进行静态资源访问
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值