Djang中静态文件配置方法

yizhihongxing

在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日

相关文章

  • Anaconda+django安装问题

    Anaconda使用中常遇到如下问题: 如果Anaconda不是最新版本,可在Anaconda Prompt中使用如下命令更新至最新版  conda update -n base -c defaults conda  创建环境,在环境名称(这里是my_env)后加上python版本,可避免后面再安装django时出现condahttperror。  cond…

    Django 2023年4月11日
    00
  • [13]Docekr09-实战 Docker版Django项目发布

    目录 Docker第三章:Docker版Django项目发布 docker版django项目发布过程 推送镜像到阿里云 腾讯云镜像加速 阿里云镜像加速 问题 思考? Django的运行是基于python的环境,加上django包。在docker中运行django,实现方式是从docker下载python镜像,然后安装django运行所依赖的包。在docker…

    Django 2023年4月11日
    00
  • Python 中Django安装和使用教程详解

    首先,Django是Python语言中一款非常流行的Web框架,提供了一套完备的解决方案,包括快速开发和丰富的功能扩展。 要安装和使用Django,可以遵循以下步骤: 安装Python Django是基于Python开发的,因此必须先安装Python。可以从Python官方网站下载适合自己操作系统的安装包,并根据安装向导完成Python的安装。 安装Djan…

    Django 2023年5月16日
    00
  • Django restful 规范

    一、REST Frame Work – REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 REST…

    Django 2023年4月10日
    00
  • django重置管理员密码

    django版本1.11 >>> from django.contrib.auth.models import User>>> user = User.objects.get(username=’your account’)>>> user.set_password(‘your password’)&gt…

    Django 2023年4月13日
    00
  • django-pymysql-封装的sql使用

    封装的sql import pymysql def get_list(sql,args): conn = pymysql.connect(host=’127.0.0.1′, port=3306, user=’root’, passwd=”, db=’s4db65′, charset=’utf8′) cursor = conn.cursor(cursor=p…

    Django 2023年4月13日
    00
  • django用户信息扩展

    Django封装了好多东西,拿来用就可以了,帮我们封装类用户的登录认证,用户的表 所以Django自带有用户表,当扩展用户表后一些表就会被替换 用户认证相关的    功能放在django.contrib.auth的一个app当中,在INSTALLED_APPS中可以看到 主要处理用户信息,权限,认证 Django遵循开闭原则 所以不修改源代码,方便框架升级 …

    Django 2023年4月12日
    00
  • [django]数据导出excel升级强化版(很强大!)

    不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条件导出的功能了. 先上图: 再说明:核心是使用django视图中的命名组,例如配置url(r’^perm=(?P<a>\w+)$’, ‘keywor…

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