django 配置media 存放调用 图片、图标等文件

一、需求分析:

一般在网站开发中,有很多类似于用户头像、用户上传的文件,这些经常要改变的媒体文件,需要有一个地方存放,于是就需要media目录,起到跟static类似的功能。

二、在settings.py中配置:

在TEMPLATES中:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,  'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',

#追加下面这一句代码:
                'django.template.context_processors.media',
            ],
        },
    },
]

在settings.py中的最后追加代码:

MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,"media")

三、在项目urls.py中增加:

......
from django.views.static import serve
from xyw.settings import MEDIA_ROOT

urlpatterns = [
    ......

    #配置上传文件的访问处理函数
    path('media/<path:path>',serve,{'document_root':MEDIA_ROOT}),
]

四、在前端中使用:

<div id="portfoliolist">

        {% for shop in all_shops.object_list %}

        <div class="portfolio shop" data-cat="shop">
            <div class="portfolio-wrapper">
<!--引入media文件代码start-->

                <img src="{{ MEDIA_URL }}{{ shop.shop_image }}" alt="店铺封面" />
<!--引入media文件代码end-->
                <div class="label">
                    <div class="label-text"><a class="text-title">{{ shop.name }}</a><span class="text-category">{{ shop.shop_sn }}</span></div>
                    <div class="label-bg"></div>
                </div>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏破晓之歌

Django+Vue部署 原

M(Django) + C(Django) + MVVM (Vue.js) = M + MVVM + C = MMVVMC

19930
来自专栏散尽浮华

rsync同步时,删除目标目录比源目录多余文件的方法(--delete)

在日常运维工作中,我们经常用到rsync这个同步神器。有时在同步两个目录时,会要求删除目标目录中比源目录多出的文件,这种情况下,就可用到rsync的--dele...

51460
来自专栏后端云

Doctor framework

Openstack社区一直没有专门的VM HA的组件来支持VM HA,所以各个厂商有这个需要都自己开发。

11340
来自专栏JackeyGao的博客

Django小技巧07: 在模板中获取当前URL

确保项目配置里的context_processors包含django.template.context_processors.request.

47720
来自专栏从零开始的linux

centos7安装oracle

关闭selinux vim /etc/sysconfig/selinux SELINUX=disabled 关闭防火墙 systemctl stop firew...

60960
来自专栏Script Boy (CN-SIMO)

连接远程数据库ORACLE11g,错误百出!

客户机中PLSQL DEV访问虚拟机中的ORACLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签...

27100
来自专栏数据之美

使用 django-blog-zinnia 搭建个人博客

django-blog-zinnia 虽然小巧,但是具备了个人博客应用的全部基础功能,且具有很高的拓展性,并且开箱即用。以下是官方列出的一些特性: 评论 站...

34090
来自专栏惨绿少年

awk巩固练习题

第1章 awk数组练习题 1.1 文件内容(仅第一行) [root@znix test]# head -1 secure-20161219 access.log...

24700
来自专栏程序员同行者

配置django图片上传与保存展示

27420
来自专栏Python小屋

使用Python实现电子邮件群发功能

在某些应用中,可能会需要由管理员给所有用法群发电子邮件,或者类似的应用。本文代码使用Python详细模拟了这个过程。 import email from ema...

1K130

扫码关注云+社区

领取腾讯云代金券