码迷,mamicode.com
首页 > Web开发 > 详细

django实现图片上传和显示

时间:2018-07-10 22:08:03      阅读:845      评论:0      收藏:0      [点我收藏+]

标签:获取   att   ken   views   image   objects   std   inf   lis   

首先安装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实现图片上传和显示

标签:获取   att   ken   views   image   objects   std   inf   lis   

原文地址:https://www.cnblogs.com/1998lu/p/9291674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!