1. 程式人生 > >Django後臺管理中上傳的圖片訪問不了問題

Django後臺管理中上傳的圖片訪問不了問題

最近在學習python世界強大的web開發框架–Django. 
在官網(https://www.djangoproject.com/)中大致瞭解了下,再跟著《Django Web開發指南》這本書做些簡單的應用。 
先是第7章Photo Gallery應用,本來以為按圖索驥很簡單就可以過去,沒想到還是碰到了坑。 
書裡面有些內容沒有提到,即便我去下載例子原始碼(http://withdjango.com/readers/),由於本地使用的環境與作者當時的不一樣,也不容易解決。

還是先說下問題吧。 
該應用主要在後臺上傳圖片,管理圖片,在前端顯示圖片及縮圖。 
按django開發基本流程,建立專案info,建立應用info1, 接著定義模型gwmdmsInfo:

models.py:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.


class BottomBarInfoManage(models.Model):
    name = models.CharField(max_length=20, verbose_name="底欄名稱")
    title = models.CharField(max_length=10, verbose_name="底欄標題")
    icon_address = models.ImageField(upload_to="media", max_length=100, verbose_name="圖示")
    used_icon_address = models.ImageField(upload_to="media", max_length=100, verbose_name="選中圖示")
    type = models.CharField(max_length=10, verbose_name="底欄型別")
    action_address = models.CharField(max_length=100, null=True, blank=True, verbose_name="動作地址")
    create_time = models.DateTimeField(auto_now=True, verbose_name="建立時間")
    alter_time = models.DateTimeField(auto_now=True, verbose_name="修改時間")
    who_did =models.CharField(max_length=10, verbose_name="操作人")

    class Meta:
        db_table = "bottomMessage"
        verbose_name = "底欄資訊維護"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

在配置檔案中新增如下程式碼

MEDIA_ROOT = os.path.join(BASE_DIR, "static/image")
ROOT_URL = "/"
MEDIA_URL = ROOT_URL + "static/image/"

成功解決