前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django上传图片

Django上传图片

作者头像
py3study
发布2020-01-15 17:32:35
4.3K0
发布2020-01-15 17:32:35
举报
文章被收录于专栏:python3python3

model

代码语言:javascript
复制
from django.db import models

class Picture(models.Model):
    path = models.ImageField(upload_to='share_pictures/')
    name = models.CharField(max_length = 50)

    class Meta:
        db_table = "picture" 

    def __str__(self):
        return self.name

forms

代码语言:javascript
复制
from django import forms

class ImageForm(forms.Form):
    name = forms.CharField(max_length = 100, label='名字:')
    picture = forms.ImageField(label='图片:') 

Views

代码语言:javascript
复制
class PictureView(APIView):

    def get(self, request):
        name = request.GET.get('name', '')
        try:
            picture = Picture.objects.get(name=name)
        except Picture.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)
        image = open(picture.path.url[1:], 'rb').read()
        return HttpResponse(image, content_type='image/png')

    def post(self, request):
        MyImageForm = ImageForm(request.POST, request.FILES)
        # 检验表单是否通过校验
        if MyImageForm.is_valid():
            # 构造一个 Profile 实例
            picture = Picture()
            # 获取name
            picture.name = MyImageForm.cleaned_data["name"]
            # 获取图片
            picture.path = MyImageForm.cleaned_data["picture"]
            e = picture.save()
            print(e)
        else:
            return Response(status=403)
        return Response(status=200)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • model
  • forms
  • Views
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档