1. 首先是setting文件

STATIC_URL = 'static/'
MEDIA_URL = "media/"

MEDIA_ROOT = BASE_DIR / 'media'
STATIC_ROOT = BASE_DIR / 'static'

STATICFILES_DIRS = [
  os.path.join(STATIC_ROOT, "js"),
  os.path.join(BASE_DIR, 'collect_static')
]

2. 然后在最外层urls.py中增加如下语句

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这里的static导入的是:

from django.conf.urls.static import static

3. 在html使用模板语法时应这么用

 <img style="height: 120px;width:90px" src="{{ MEDIA_URL }}{{ book.cover_image.url }}" alt="图片">

最终呈现的地址就类似:

http://localhost:8000/media/images/Scene_E_1.jpg

解释一下:
一是在我的model中,cover_image是一个ImageFiled属性值,定义如下:

cover_image = models.ImageField(
    upload_to='images',
    null=True,
    blank=True
)

也就是说,我上传的图片都被放在了

[工程路径]/media/images

路径中。

二是当你在template中使用model值时,Django会自动给你增加一个名为“url”的属性。