django实现图片上传和显示
Posted 1998lu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django实现图片上传和显示相关的知识,希望对你有一定的参考价值。
首先安装pillow模块
在models.py下设置
class Notices(models.Model):
NoticeCategory=models.CharField(max_length=10,default=‘‘) #新闻分类
NoticeImagePath=models.ImageField(upload_to=‘img‘)
这里的upload_to是指将图片存放在哪个位置
在views.py中设置获取图片的方法
def index(request): Notice_list = Notices.objects.all().order_by(‘NoticeData‘)[:10] return render(request, ‘index.html‘, {‘Notice_list‘: Notice_list})
我这里是获取整个notices列表。
在setting中设置:
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘).replace(‘\\‘, ‘/‘) #设置静态文件路径为主目录下的media文件夹 MEDIA_URL = ‘/media/‘
在上传图片时会自动生成media这个文件夹
TEMPLATES = [
{
‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
‘DIRS‘: [os.path.join(BASE_DIR, ‘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‘,#新增加的一行
],
},
},
]
在urls中添加
urlpatterns = [
url(‘admin/‘, admin.site.urls),
url(r‘^std_web/‘, include(‘std_web.urls‘, namespace=‘std_web‘)),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在index.html中
<a href="{{Notice_list.NoticeImagePath.url}}"><img src="{{Notice_list.NoticeImagePath.url}}"></img></a>
具体显示图片代码。
以上是关于django实现图片上传和显示的主要内容,如果未能解决你的问题,请参考以下文章