django2上传的图片打不开、图片不显示路径问题解决办法

python版本:python 3.7.0
Django版本:2.1.7
Pycharm版本:Pycharm2018.3.2 x64
在models.py里设置的图片上传字段如下

thumbnail = models.ImageField(upload_to=image_upload_to, max_length=255, blank=True, null=True)

image_upload_to函数定义如下:

def image_upload_to(instance, filename):
     ext = filename.split('.')[-1]   
     filename = '{}{}.{}'.format(time.strftime('%Y%m%d'), uuid.uuid4().hex[:6], ext)

     return os.path.join("thumbnail", filename)

在后台可以上传成功,但是图片打不开,图片不显示。

在settings.py设置好:

MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'images')
MEDIA_URL = '/media/'

综上这样设置,那么我的图片会存在/static/images/thumbnail 下。
图片URL路径为:http://localhost:8000/media/thumbnail/201903216764c3.jpg
但是图片打不开,图片不显示。

在urls.py里增加:

from django.urls import path, re_path
from django.conf import settings
from django.views.static import serve

在urls.py里的urlpatterns内增加:

re_path(r'^media/(?P.*)$', serve, {"document_root": settings.MEDIA_ROOT}),

OK,在试试打开图片,可以打开了。

你可能感兴趣的:(django)