django上传图片

本文详细介绍了在Django中如何实现图片上传并展示。首先,在settings中配置媒体文件路径;接着,model中设计存储图片路径的字段,使用`upload_to`指定保存位置;然后,在HTML模板中通过{{ MEDIA_URL }}和自定义URL前缀访问图片;同时,通过设置context_processors将MEDIA_URL注入HTML;最后,配置urls以处理上传文件的访问请求。

1.setting中设置
# 上传文件,资源配置
MEDIA_URL = '/dimples/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'dimples')
2.model

只存储路径

image = models.ImageField(upload_to='image/%Y/%m',default=u'image/default.png',max_length=100)

upload_to=: 指明文件的路径(image/年/月)

3.html中获取图片

例如:

{{ course_org.image }}  只获取了相对地址

正确方式

  • a.在前面加{{ MEDIA_URL }}
{{ MEDIA_URL }}{{ course_org.image }}
  • b.在前面加/dimples/
data-url = "/dimples/{{ course_org.image }}"
4.配置media内部处理类(setting中)

OPTIONS--->context_processors中添加:

'django.core.context_processors.media'

如下:

'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.core.context_processors.media'
            ],
        },

会自动将MEDIA_URL注册到html中

5.配置urls
from django.views.static import serve

配置(上传文件的访问处理函数) dimples的urls:

url(r'^dimples/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}),

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值