django imagefield上传之后为何无法显示?

新手上路,请多包涵

目的:上传图像后可以查看

相关models.py

class IMG(models.Model):
    resumeImg=models.ImageField(upload_to='img')
    CompanyName=models.CharField(max_length=200)

相关views.py(lib是app的名字)

def uploadImg(request):
    if request.method=='POST':
        new_img=IMG(
            resumeImg=request.FILES.get('resumeImg'),
            CompanyName=request.FILES.get('resumeImg').name
        )
        new_img.save()
    return render(request,'lib/uploading.html')

def showImg(request):
    imgs=IMG.objects.all()
    content={'imgs':imgs}
    for i in imgs:
        print (i.resumeImg.url)
    return render(request,'lib/showing.html',content)

相关liburls.py

urlpatterns = [
    ..........
    path('upload/',views.uploadImg),
    path('show/',views.showImg),
    ]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'lib/templates')],
        'APP_DIRS': True,
        '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.template.context_processors.media',
            ],
        },
    },
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
MEDIA_ROOT = os.path.join(BASE_DIR,'lib\media').replace('\\','/')
MEDIA_URL='/media/'
# 设置图片等静态文件的路径
STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    ('js', os.path.join(STATIC_ROOT, 'js').replace('\\', '/')),
    ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
    ('upload', os.path.join(STATIC_ROOT, 'upload').replace('\\', '/')),
)

html的代码


<!DOCTYPE html>

<html lang="en">

<head>
 
   <meta charset="UTF-8">
  
  <title>Title</title>

</head>

<body>
 
 
   {% for img in imgs %}
    
     <img src="{{ img.resumeImg.url }}"/> 
   {% endfor %}

</body>

</html>

一下是显示的结果(F12),上传感觉没有问题,文件夹里也有图片。
这是显示的结果(F12)

在stackoverflow等网站上也已经搜寻过相关问题,不过好像都无法解决。感谢

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题