Djang中静态文件配置方法

在Django中,静态文件(如CSS、JavaScript、图片等)是指不随着页面内容的变化而发生改变的文件。下面将详细讲解在Django中如何配置静态文件。

静态文件配置方法

第一步:在settings.py中设置静态文件路径

在Django项目的settings.py文件中,可以通过STATICFILES_DIRS、STATIC_ROOT、STATIC_URL三个变量配置静态文件路径。具体含义如下:

  • STATICFILES_DIRS:静态文件目录,即Django会去这些目录中找寻静态文件。在这里可以指定多个目录。

  • STATIC_ROOT:静态文件的根目录,即静态文件的总目录。当我们执行collectstatic命令时,Django会把所有静态文件收集到这个目录中。

  • STATIC_URL:静态文件的URL前缀,即在HTML代码中,引用静态文件url的前缀。

以下是一个示例设置:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

STATIC_ROOT = os.path.join(BASE_DIR, 'public', 'static')

STATIC_URL = '/static/'

第二步:在页面中引用静态文件

引用静态文件分为以下两种情况:

1. 在模板中引用静态文件

在Django的模板中,可以使用{% static '文件路径' %}标签来引用静态文件。例如:

<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">

2. 在python代码中引用静态文件

可以在python代码中使用static函数来引用静态文件。例如:

from django.templatetags.static import static

url = static('css/styles.css')

静态文件配置示例

下面给出两个静态文件配置的示例:

示例1:在Django项目中引用Bootstrap

  1. 下载Bootstrap,并解压到项目中的static目录下,最终目录结构如下:
├─ static
│  ├─ bootstrap
│     ├─ css
│     ├─ js
│     ├─ ...
  1. 在base.html中添加以下代码:
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
  1. 在本地运行项目,即可看到Bootstrap效果。

示例2:使用Whitenoise配置静态文件

  1. 安装Whitenoise
pip install whitenoise
  1. 在settings.py文件中添加以下代码:
MIDDLEWARE = [
    'whitenoise.middleware.WhiteNoiseMiddleware',
    # 其他中间件
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
  1. 在模板中使用{% static %}标签引用静态文件,例如:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">

通过Whitenoise中间件,可以有效地缓存静态文件。同时,CompressedManifestStaticFilesStorage模式可以让静态文件被浏览器缓存,提高网站加载速度。

以上就是在Django中配置静态文件的整个攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Djang中静态文件配置方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django(六)模型(model)系统 — 常用查询语法及进阶

    必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <4> exclude(**kwa…

    Django 2023年4月11日
    00
  • vue+django配置

    1.写完Vue项目 修改src/router/index.js的Router对象 export default new Router({ mode: ‘history’, routes: [ { path: ‘/’, name: ‘Pos’, component: Pos } ] }) //添加mode:’history’ 2.修改config/index.…

    Django 2023年4月13日
    00
  • Python的Django框架安装全攻略

    Python的Django框架安装全攻略 简介 Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型(Model)、视图(View)和模板(Template),使得数据的管理更加简单。 本文旨在介绍Django框架的安装步骤,以及如何通过示例说明来体验Django框架的使用。 安装步骤 检查Python环境 在安装…

    Django 2023年5月16日
    00
  • python-django中间件session源码

    settings.py MIDDLEWARE = [ ‘django.contrib.sessions.middleware.SessionMiddleware’, ] 1. 看看SessionMiddleware类   from django.contrib.sessions.middleware import SessionMiddleware clas…

    Django 2023年4月13日
    00
  • Django 自定义权限管理系统详解(通过中间件认证)

    下面我将详细讲解“Django 自定义权限管理系统详解(通过中间件认证)”的完整攻略,并且包含两条示例说明。 1. 安装 Django 和创建项目 首先,我们需要安装 Django,并创建一个新项目: pip install django django-admin startproject mysite 2. 创建应用并添加模型 接着,创建一个新的应用,并在…

    Django 2023年5月16日
    00
  • django-创建超级管理员用户

    \(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\) 在admin中配置 from django.contrib import admin from .models import User admin.site.register(User) #注册模型 \(~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

    Django 2023年4月11日
    00
  • Django之单表查询,多表查询(正向、反向查询),聚合查询

    常用字段 AutoField int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。 IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存,) CharField 字符类型,必须提供max_…

    Django 2023年4月12日
    00
  • Django之drf的视图类

    目录 1. 视图相关 1.1. 请求与响应 1.1.1 Request 1.1.1.1 常用属性 1).data 2).query_params 1.1.2 Response 1.1.2.1 构造方式 1.1.2.2 常用属性 1).data 2).status_code 3).content 1.1.2.3 状态码 1)信息告知 – 1xx 2)成功 – …

    2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部