Django2的“媒体文件”media的设置

django 所有文件都是通过wsgi.py这个文件作为入口来解析的,主要是解析django MTV框架下的.py程序文件。对于上传的图片、文件,是不需要django解析的,因此要做一些设置,告诉django,什么样网址的是这样的“媒体”文件,这些文件保存于什么地方。
1、设置settings.py文件
(1)在settings.py文件里增加一行,用于在模板文件中处理媒体文件,就是下面行号69的那一行


 58 TEMPLATES = [
 59     {
 60         'BACKEND': 'django.template.backends.django.DjangoTemplates',
 61         'DIRS': [],
 62         'APP_DIRS': True,
 63         'OPTIONS': {
 64             'context_processors': [
 65                 'django.template.context_processors.debug',
 66                 'django.template.context_processors.request',
 67                 'django.contrib.auth.context_processors.auth',
 68                 'django.contrib.messages.context_processors.messages',
 69                 'django.template.context_processors.media',
 70             ],
 71         },
 72     },
 73 ]

(2)增加两个关于媒体文件路径的设置
#这个语句就是告诉django,什么样网址是媒体文件
#这里用的是media,你也可以替换成其他,比如我习惯用upload
MEDIA_URL = ‘/media/’

#这个语句告诉django,这些媒体文件具体存在于什么地方
#这是我保存上传文件的地方,是磁盘上的文件系统地址
MEDIA_ROOT = ‘/var/www/html/myproject/upload’
2、设置url
django里所有的访问都需要设置urls.py文件,静态文件也不例外,也需要在urls.py文件里配置访问媒体文件的路由。
注意这里的r’media/这个media要和settints.py里的MEDIA_URL一致

from django.urls import path,re_path
from django.views.static import serve
from cnblog import settings

##media配置——配合settings中的MEDIA_ROOT的配置,就可以在浏览器的地址栏访问media文件夹及里面的文件了
re_path(r'media/(?P<path>.*)$',serve,{'document_root':settings.MEDIA_ROOT}),

这里有点感觉在settings.py和urls.py里的配置有点雷同,好像是重复了。实际上虽然数据有冗余,但是是不同的功能。
urls.py里的设置是当浏览器访问的时候,知道到哪里去读取文件。settings.py文件的设置是告诉中间件处理程序’django.template.context_processors.media’怎么管理媒体文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值