我是靠谱客的博主 执着毛豆,最近开发中收集的这篇文章主要介绍django2无法显示图片,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 这次我遇到了一个坑,我通过django中的models模块与mysql数据库做交互,其中涉及到存图片的问题,我的设想是上传图片,然后图片保存在media下的img文件夹中,我就在settings中配置media的静态路由。

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

然后我就去urls中设置media的路由。

from django.contrib import admin
from django.urls import path, re_path
from django.conf.urls.static import static
from django.views.static import serve
from . import settings
from blogs import views
urlpatterns = [
path('admin/', admin.site.urls),
#meidia的相关配置
re_path(r'media/(?P<path>.*)$', serve, {'document_root':settings.MEDIA_ROOT}),
path('', views.index),
path('<int:id>', views.commodity_details, name='commodity_detail'),
path('search/commodity', views.search_commodity, name = 'search_commodity'),
path('search/<path:sort>', views.search_sort, name = 'search_sort'),
path('login', views.login, name = 'login'),
path('user_login', views.user_login, name = 'user_login'),
path('user_register', views.user_register, name = 'user_register'),
]
# urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

起先我是按照大众思想,就是代码块最后面的那行注释了的代码进行配置的。结果发现其他的都没问题,就是在前端中不显示图片,检查时图片url什么的都没问题,状态码也是200,也没有报错,但是图片就是不显示,这就很头疼,后来才发现当我这样在数据库存入少量图片的时候,图片还能显示,但是当我的数据存多了之后,就没有办法显示了。原来是应为media下面还有一个img文件,是这趟导致图片显示不出来的。

后来我就将

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

这行代码注释了,(切记一定要注释掉或删除上面的代码)加上了这行代码

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

当然在这行代码前不要忘了导包

from django.urls import path, re_path

这样就可以成功显示media中img下的文件了。

这里我还是将我models中创建表的代码贴在这里。

commodity_image = models.ImageField(upload_to = 'img')

好了,这次的python之坑也就先到这里了,如果各位有什么疑问的话,欢迎留言。

最后

以上就是执着毛豆为你收集整理的django2无法显示图片的全部内容,希望文章能够帮你解决django2无法显示图片所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部