当前位置:   article > 正文

一周学会Django5 Python Web开发-项目配置settings.py文件-资源文件配置

一周学会Django5 Python Web开发-项目配置settings.py文件-资源文件配置

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/资源文件配置分为静态资源和媒体资源。静态资源的配置方式由配置属性STATIC_URL、STATICFILES DIRS和STATIC_ROOT进行设置;媒体资源的配置方式由配置属性MEDIA_URL和MEDIA ROOT决定。

静态资源配置=STATIC_URL

静态资源指的是网站中不会改变的文件。在一般的应用程序中,静态资源包括CSS文件、JavaScript文件以及图片等资源文件。

默认配置,app下的static目录为静态资源,可以直接访问。其他目录不行。

STATIC_URL = 'static/'

我们在app下新建static目录,再放一个logo.png图片。

同时在app目录下再新建一个images目录,放一个qq.jpg头像图片

最后再项目目录下新建一个static,放一个pig.jpg,也试试看是否可以访问;

http://127.0.0.1:8000/static/logo.png我们启动项目测试:

先测试app下的static目录下的logo.png,能显示没问题。

http://127.0.0.1:8000/static/logo.png

再试试app下的images目录下的qq.jpg

http://127.0.0.1:8000/static/qq.jpg

404不存在

最后再测试下项目目录下的static下的pig.jpg

http://127.0.0.1:8000/static/pig.jpg

也是404不存在。

通过测试说明,也就app下的static目录下的静态资源才能访问。

静态资源集合配置-STATICFILES DIRS

由于STATIC_URL的特殊性,在开发中会造成诸多不便,比如将静态文件夹存放在项目的根目录以及定义多个静态文件夹等。我们可以通过配置STATICFILES DIRS实现多个目录下的静态资源可以访问。

  1. # 设置静态资源文件集合
  2. STATICFILES_DIRS = [BASE_DIR / "static", BASE_DIR / "helloWorld/images"]

我们再测试下:

http://127.0.0.1:8000/static/pig.jpg

http://127.0.0.1:8000/static/qq.jpg

静态资源部署配置-STATIC_ROOT

静态资源配置还有STATIC_ROOT,其作用是在服务器上部署项目,实现服务器和项目之间的映射。STATIC_ROOT 主要收集整个项目的静态资源并存放在一个新的文件夹,然后由该文件夹与服务器之间构建映射关系。STATIC_ROOT配置如下:

  1. # 静态资源部署
  2. STATIC_ROOT = BASE_DIR / 'static'

当项目的配置属性 DEBUG 设为True的时候,Django 会自动提供静态文件代理服务,此时整个项目处于开发阶段,因此无须使用STATIC_ROOT。当配置属性DEBUG 设为False的时候,意味着项目进入生产环境,Django不再提供静态文件代理服务,此时需要在项目的配置文件中设置STATIC_ROOT。 设置STATIC_ROOT需要使用 Django操作指令collectstatic来收集所有静态资源,这些静态资源都会保存在STATIC_ROOT所设置的文件夹里。

媒体资源配置-MEDIA

一般情况下,STATIC_URL是设置静态文件的路由地址,如CSS样式文件、JavaScript文件以及常用图片等。对于一些经常变动的资源,通常将其存放在媒体资源文件夹,如用户头像、歌曲文件等。

媒体资源和静态资源是可以同时存在的,而且两者可以独立运行,互不影响,而媒体资源只有配置属性MEDIA_URL和 MEDIA_ROOT。

我们在项目目录下新建media目录,里面再放一个boy.jpg图片。

然后在配置文件settings.py里设置配置属性MEDIA_URL和 MEDIA_ROOT,MEDIA_URL用于设置媒体资源的路由地址,MEDIA_ROOT用于获取 media文件夹在计算机系统的完整路径信息,如下所示:

  1. # 设置媒体路由
  2. MEDIA_URL = 'media/'
  3. # 设置media目录的完整路径
  4. MEDIA_ROOT = BASE_DIR / 'media'

配置属性设置后,还需要将media文件夹注册到 Django里,让 Django知道如何找到媒体文件,否则无法在浏览器上访问该文件夹的文件信息。打开项目文件夹的urls.py文件,为媒体文件夹media添加相应的路由地址,代码如下:

  1. from django.conf import settings
  2. from django.contrib import admin
  3. from django.urls import path, re_path
  4. from django.views.static import serve
  5. import helloWorld.views
  6. urlpatterns = [
  7. path('admin/', admin.site.urls),
  8. path('index/', helloWorld.views.index),
  9. # 配置媒体文件的路由地址
  10. re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}, name='media')
  11. ]

我们来测试下:

http://127.0.0.1:8000/media/boy.jpg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/105889
推荐阅读
相关标签
  

闽ICP备14008679号