Django项目中动态设置静态文件路径的全过程

 更新时间:2022年02月14日 12:15:06   作者:动态设置路径  
这篇文章主要给大家介绍了关于Django项目中动态设置静态文件路径的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

Django项目需要在settings.py文件中设置各种文件的路径,例如:媒体文件(media)的路径、静态文件(static files)的路径、模板文件(templetes)的路径。然而对于每一个开发者而言,python虚拟环境是可以存放在任何位置的,所以每一个开发者文件的绝对路径也不完全相同。为了避免不同的运行环境下文件位置不同造成的异常情况,可以通过动态设置路径的方法来解决这个问题。

根据项目修改路径相关设置,而不是将文件路径硬编码到文件中,修改base.py文件,示例如下:

一、修改BASE_DIR:

修改前:

BASE_DIR = Path(__file__).resolve().parent.parent

修改后的内容

BASE_DIR = Path(__file__).resolve().parent.parent.parent

二、修改模板文件路径(TEMPLATES中的DIRS的值):

修改模板路径前代码示例

修改模板路径代码后示例

注:由于base.py文件中默认是没有导入os模块,需要在base.py文件开头进行模块导入,如下所示:

导入os模块示例

三、修改国际化文件路径,由于LOCALE_PATHS默认不存在,需要自己在合适位置添加,如下图所示:

国际化文件路径代码示例

四、修改公共文件路径,如下图所示:

修改公共静态文件路径后的代码示例

注:STATICFILES_DIRS是一个公共的文件夹, 因为有些静态文件不是某个app独有的,那么就可以把它放到一个公共文件夹里面,方便管理。注意,建立一个公共的静态文件的文件夹只是一种易于管理的做法,但是不是必须的,app是可以跨app应用静态文件的,因为最后所有的静态文件都会在STATIC_ROOT里面存在。因为一个项目可能包含多个app,所以可以在STATICFILES_DIRS中可以创建site文件夹(具体可以根据app名称命名),将每个app的静态文件分离,相当于命名空间一样的作用(具体结构可参考Django项目搭建以及相应目录介绍)。

五、修改STATIC_ROOT文件路径,如下图所示:

修改STATIC_ROOT后代码示例

注:部署django项目的时候需要用到STATIC_ROOT ,它是收集所有的静态文件,执行完python manage.py collectstatic后,将静态文件复制到STATIC_ROOT指定的目录中。

六、修改多媒体路径,如下图所示:

修改多媒体路径后的代码示例

补充:STATIC_URL指出浏览器访问静态资源的“根路径”,即该路径为显示在浏览器地址栏中的值,其本质就是利用STATIC_URL的具体内容,来映射STATIC_ROOT。因为用户在浏览的时候不可能输入服务器本地地址对静态资源进行访问,而是需要通过url的形式访问。

总结

到此这篇关于Django项目中动态设置静态文件路径的文章就介绍到这了,更多相关Django动态设置静态文件路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python+pyqt5编写md5生成器

    python+pyqt5编写md5生成器

    这篇文章主要为大家详细介绍了python+pyqt5编写md5生成器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • python with statement 进行文件操作指南

    python with statement 进行文件操作指南

    在Python中,with关键字是一个替你管理实现上下文协议对象的好东西。例如:file等。在file的结束,会自动关闭该文件句柄。而这正是本文所需要的
    2014-08-08
  • linux平台使用Python制作BT种子并获取BT种子信息的方法

    linux平台使用Python制作BT种子并获取BT种子信息的方法

    这篇文章主要介绍了linux平台使用Python制作BT种子并获取BT种子信息的方法,结合实例形式详细分析了Python BT模块的安装及针对BT种子文件的相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • 基于opencv实现简单画板功能

    基于opencv实现简单画板功能

    这篇文章主要为大家详细介绍了基于opencv实现简单画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • opencv python 图像去噪的实现方法

    opencv python 图像去噪的实现方法

    这篇文章主要介绍了opencv python 图像去噪的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • python中的元组与列表及元组的更改

    python中的元组与列表及元组的更改

    这篇文章主要介绍了python中的元组与列表及元组的更改,元组是由一对方括号构成的序列。列表创建后,可以根据自己的需要改变他的内容,下面更多详细内容,需要的小伙伴可以参考一下
    2022-03-03
  • python利用datetime模块计算程序运行时间问题

    python利用datetime模块计算程序运行时间问题

    这篇文章主要介绍了python利用datetime模块计算程序运行时间,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python模拟登录并且保持cookie的方法详解

    python模拟登录并且保持cookie的方法详解

    模拟登录相信对大家来说都不陌生,下面这篇文章主要给大家介绍了关于python模拟登录并且保持cookie的方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • python增加图像对比度的方法

    python增加图像对比度的方法

    这篇文章主要为大家详细介绍了python增加图像对比度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • pycharm执行python时,填写参数的方法

    pycharm执行python时,填写参数的方法

    今天小编就为大家分享一篇pycharm执行python时,填写参数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论