在python3中如何加载静态文件详版步骤
Posted 我是夜雨吖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python3中如何加载静态文件详版步骤相关的知识,希望对你有一定的参考价值。
在一个网页中,不仅仅只有一个`html`骨架,还需要`css`样式文件,`js`执行文件以及一些图片等。因此在`DTL`中加载静态文件是一个必须要解决的问题。在`DTL`中,使用`static`标签来加载静态文件。要使用`static`标签,首先需要`{% load static %}`。加载静态文件的步骤如下:
- 首先确保`django.contrib.staticfiles`已经添加到`settings.INSTALLED_APPS`中。
- 确保在`settings.py`中设置了`STATIC_URL`。
- 在已经安装了的`app`下创建一个文件夹叫做`static`,然后再在这个`static`文件夹下创建一个当前`app`的名字的文件夹,再把静态文件放到这个文件夹下。例如你的`app`叫做`book`,有一个静态文件叫做`zhiliao.jpg`,那么路径为`book/static/book/zhiliao.jpg`。(为什么在`app`下创建一个`static`文件夹,还需要在这个`static`下创建一个同`app`名字的文件夹呢?原因是如果直接把静态文件放在`static`文件夹下,那么在模版加载静态文件的时候就是使用`zhiliao.jpg`,如果在多个`app`之间有同名的静态文件,这时候可能就会产生混淆。而在`static`文件夹下加了一个同名`app`文件夹,在模版中加载的时候就是使用`app/zhiliao.jpg`,这样就可以避免产生混淆。)
- 如果有一些静态文件是不和任何`app`挂钩的。那么可以在`settings.py`中添加`STATICFILES_DIRS`,以后`DTL`就会在这个列表的路径中查找静态文件。比如可以设置为: ```python STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static") ] ```
- 在模版中使用`load`标签加载`static`标签。比如要加载在项目的`static`文件夹下的`style.css`的文件。那么示例代码如下: ```html {% load static %} ```
- 如果不想每次在模版中加载静态文件都使用`load`加载`static`标签,那么可以在`settings.py`中的`TEMPLATES/OPTIONS`添加`‘builtins‘:[‘django.templatetags.static‘]`,这样以后在模版中就可以直接使用`static`标签,而不用手动的`load`了。
如果没有在`settings.INSTALLED_APPS`中添加`django.contrib.staticfiles`。那么我们就需要手动的将请求静态文件的`url`与静态文件的路径进行映射了。示例代码如下: ```python from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 其他的url映射 ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT
以上是关于在python3中如何加载静态文件详版步骤的主要内容,如果未能解决你的问题,请参考以下文章