django上傳圖片


1.seeting中設置

# 上傳文件,資源配置MEDIA_URL = '/dimples/'MEDIA_ROOT = os.path.join(BASE_DIR, 'dimples')

2.model

只存儲路徑

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

upload_to=: 指明文件的路徑(p_w_picpath/年/月)

3.html中獲取圖片

例如:

{{ course_org.p_w_picpath }}  只獲取了相對地址

正確方式

  • a.在前面加` MEDIA_URL `

{{ MEDIA_URL }}{{ course_org.p_w_picpath }}
  • b.在前面加/dimples/

data-url = "/dimples/{{ course_org.p_w_picpath }}"

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}),


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章