Django 中加载静态文件(static)详解

加载静态文件的步骤如下:

在这里插入图片描述
1、首先确django.contrib.staticfiles已经添加到settings.INSTALLED_APPS中。

2、确保在settings.py 中设置了STATIC_URL
在这里插入图片描述
上面两条都是在创建Django项目的时候就自动给我们弄好了,只要我们没有改动它,就不用管。

3、在已经安装的app下创建一个static文件夹,然后再在这个static文件夹下创建一个当前app名字的文件夹,再把静态文件放在这个文件夹下。
在这里插入图片描述
4-1、在模板中使用load标签加载static 标签。
注意:{% load static %}需要放在html文件的head标签中,至少在使用static文件的上面。如果{% extends ‘xxx.html’%}标签和{% load static %}标签同时存在,{% extends ‘xxx.html’%}需要放在最上面,然后再放{% load static %}等标签。
在这里插入图片描述

如果不想每次在模板中加载静态文件都使用load加载static标签,那么可以在settings.py中的TEMPLATES添加
‘builtins’:[‘django.templatetags.static’],,这样以后在模板中就可以直接使用static标签,而不用手动的load了。
在这里插入图片描述

4-2、如果有一些静态文件是不和任何app有联系。即不在任何一个app的目录下。那么可以在settings.py中添加
STATICFILES_DIRS,以后DTL就会在这个列表的路径中查找静态文件。
在这里插入图片描述在这里插入图片描述

静态资源的加载顺序:如果公共static(需要配置STATICFILES_DIRS)下不存在对应的文件,就按照settings.py中app注册的顺序查找。

例子:

1、在不同的文件夹下放相同的名称的图片,但内容不同。
在这里插入图片描述

2、视图函数、
在这里插入图片描述
3、 /loadpicture/urls.py
在这里插入图片描述
4、/templates/loadpicture/index2.html
在这里插入图片描述
5、启动Django,浏览器返回结果
在这里插入图片描述
在settings.py 文件中删除,下图红色框里的内容后,再启动Django。
在这里插入图片描述
结果:
在这里插入图片描述
加载图片的两种方式:
方式1:不修改setting.py文件,静态文件夹在app目录下。
在app目录下创建static文件夹存放图片,使用load标签加载静态文件。
加载图片可以不是使用这个标签,因为src属性里面是相对路径。
在这里插入图片描述
(非必须:load标签可以通过修改settings.py文件,省略不写)

方式2:修改settings.py文件,静态文件夹在项目目录下(公共静态文件)。
在这里插入图片描述

  • 12
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Django 导入静态资源文件,可以按照以下步骤进行操作: 1. 在 Django 项目的根目录下创建一个名为 `static` 的文件夹,用于存放静态文件,例如 CSS、JavaScript、图片等。 2. 在 `settings.py` 文件,将 `STATIC_URL` 设置为静态文件的 URL 前缀,例如: ```python # settings.py STATIC_URL = '/static/' ``` 3. 在需要使用静态文件的模板或视图,使用 `{% load static %}` 加载静态文件标签库,并使用 `static` 模板标签生成静态文件的 URL。 例如,在模板加载 CSS 文件: ```html <!-- templates/base.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}My Website{% endblock %}</title> <link rel="stylesheet" href="{% static 'css/style.css' %}"> </head> <body> {% block content %} {% endblock %} </body> </html> ``` 在视图加载图片文件: ```python # views.py from django.shortcuts import render def my_view(request): context = {'img_url': '/static/images/my-image.jpg'} return render(request, 'my_template.html', context) ``` 在模板使用 `img` 标签加载图片: ```html <!-- templates/my_template.html --> {% extends 'base.html' %} {% block content %} <h1>My Page</h1> <img src="{{ img_url }}" alt="My Image"> {% endblock %} ``` 以上是在 Django 导入静态资源文件的基本步骤。需要注意的是,Django 会在应用程序目录下查找静态文件,例如 `myapp/static/`,如果找不到,会在根目录下的 `static` 文件查找。另外,在生产环境,建议使用专业的 Web 服务器来处理静态文件,例如 Nginx 或 Apache。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值