Django 学习笔记之加载静态文件

本文详述在Django 2.2环境下,通过PyCharm 2019.1.1进行静态资源(js/css/img)管理的两种方法。介绍了如何在static文件夹下存放静态文件,并在html页面中通过loadstaticfiles tag或STATIC_URL引用这些资源。同时,针对加载失败问题,提供了多种解决策略,包括检查urls.py和settings.py配置、修改静态文件路径等。

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

前文介绍

Django版本:2.2
PyCharm版本:2019.1.1

js/css/img等静态文件要放在static文件夹下,html页要放在templates文件夹下。
static文件夹要自己新建-目录,templates文件夹是Django创建后自动生成的。
目录如下:
在这里插入图片描述
static文件夹创建以后在settings里自动会添加如下url:

#Static files(CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/

STATIC_URL = '/static/'

方法一 :借助load staticfiles tag

#将下面这句话句添加到html文件中 <!DOCTYPE html> 的下面
{% load staticfiles %}
#采用{% %}的方式导入js/css标签
 <script type="text/javascript" src="{% static "/js/jquery-3.3.1.min.js" %}">
 </script>
 <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}" />

方法二:借助STATIC_URL

<link rel="stylesheet" type="text/css" href="/static/css/style.css" />

因为上文已经提到在建立static文件夹以后就会告诉你static的url是 /static/ ,记得前后都有 / 。

后记:加载失败的几种解决方法

本人先采用的方法二加载,因为是在别的IDE码的前端HTML页,但是copy过来以后发现不太好使,就改用了第一种方法,然后就报了以下错误。(和参考内容第一个网址里的提问很像)
在这里插入图片描述
然后就尝试了各种解决办法,罗列如下。
(但实际最后又改回第二种方法突然就好使了!就好使了!!期间因为要查怎么改连了一下网,其他代码完全没变,就很奇怪咯。)

1.在项目urls.py中,检查是否加上:

url(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),

2.检查settings.py中的INSTALLED_APPS中包含django.contrib.staticfiles,否则映射关系错误。

(一般情况这个也没有问题,反正我这个是创建项目时就自动配置好的。)

3.在项目settings.py中检查static的配置是否正确,查找路径有没有问题

如上文提到一般情况建立static文件夹以后会自动在settings.py中加入

STATIC_URL = '/static/'

所以该方法可以尝试在这句话下面再添加以下:

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

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

4.修改 urls.py

from django.conf.urls import url
from django.contrib import adminform blogs import views as blogs_views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),   url(r'^$', blogs_views.index),
] + static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

总之每个方法都试一试,多试几次,或者全都改改,肯定可以成功地,你是最棒的!
感谢阅读。

参考:
https://segmentfault.com/q/1010000012921902?_ea=3212893
https://blog.youkuaiyun.com/qq_41786195/article/details/82121103

### Django 4.2 学习资源概述 Django 是一个高级 Python Web 框架,能够快速开发安全且可维护的网站。对于 Django 4.2 的学习,可以从以下几个方面入手: #### 基础知识准备 在开始学习 Django 4.2 之前,建议先掌握 Python 编程的基础知识,包括但不限于变量、数据类型、控制流、函数和模块等内容[^1]。此外,推荐使用 PyCharm 或其他 IDE 来提高编码效率,并熟悉其基本功能和快捷键。 #### 安装与环境搭建 确保已正确安装 Django 和相关依赖项。如果遇到缺少 `os` 模块的情况,可以在项目的 `settings.py` 文件中显式导入该模块以解决问题[^4]。同时,在配置静态文件时,需按照指定方式调整路径设置,以便顺利加载 CSS、JavaScript 等资源。 #### 路由配置 了解如何通过 URLconf 实现请求映射是构建 Django 应用的重要环节之一。例如,在项目主目录下的 `urls.py` 中添加如下代码片段用于集成富文本编辑器 TinyMCE: ```python from django.urls import path, include urlpatterns = [ ... path('tinymce/', include('tinymce.urls')), ] ``` 此部分操作有助于扩展应用的功能范围[^2]。 #### 数据处理与分析工具链 为了更好地支持数据分析场景下基于 Django 构建的应用程序,应熟练运用 NumPy、Pandas 及 Matplotlib 进行高效的数据预处理及可视化展示工作;与此同时,借助 Scikit-Learn 提供的强大算法库实现机器学习模型训练过程中的各个环节管理——从特征提取到最终性能评测均涵盖其中。 #### 开发辅助工具介绍 IPython 是一种增强型交互式 shell ,相较于标准 python REPL 提供更多实用特性 。当结合 Jupyter Notebook 使用时,则进一步增强了探索性和实验性质较强的任务执行体验效果显著提升 [^3]. --- ### 示例:简单的 Django 视图定义 以下是创建一个简单视图的例子,展示了如何返回 HTTP 响应给客户端。 ```python from django.http import HttpResponse def hello_world(request): return HttpResponse("Hello, world!") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值