django - django中如何获取上传图片的宽度和高度?

标签 django image-upload

如何在django中获取上传图片的宽度和高度?

不要使用 PIL。

最佳答案

ImageField 会自动处理图像的宽度和高度。您不需要做任何事情。

  1. 更改项目设置

将这些代码附加到项目目录中的setting.py末尾

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

然后修改项目目录下的urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path(...),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  • 提供两个整数字段来存储图像的宽度和高度
  • 模型.py

    class Picture(models.Model):
        image = models.ImageField(upload_to='images/', width_field = 'image_width', height_field='image_height')
        image_width = models.IntegerField(default=0)
        image_height = models.IntegerField(default=0)
    
  • 创建一个表单,请勿包含“image_width”和“image_height”,它们应该被隐藏并自动填充。
  • 表单.py

    class PictureForm(forms.Form)
        image = forms.ImageField()
    
  • 在 View 中验证和处理表单并将数据保存到数据库
  • View .py

    def createPicture(request):
        form = PictureForm(request.POST, request.FILES)
        if form.is_valid():
            picture = Picture()
            picture.image = form.cleaned_data['image']
            picture.save()
            return HttpResponseRedirect(reverse('picture-list'))
        else:
            form = PictureForm()
        return render(request, 'template_file', {'form' : form})
    

    关于django - django中如何获取上传图片的宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779016/

    相关文章:

    django - 将数据库中的列加载到列表中

    python - 在 Mountain Lion 中执行 ex mkvirtualenv 时出错

    django - 数据仓库和 Django

    python - LAN Dashboard 技术推荐

    django - 如何在 POSTMAN 中使用 raw 上传图片?

    php - 使用 php 和 mysql 上传多个图像并插入到表中的单独字段中

    javascript - Shutterstock:上传图片的API

    python - django 中的网络 ERP 我从哪里开始?

    html - 根据图像扩展类型选择 html-file-upload 中的图像

    javascript - 使用Javascript功能上传和预览图像在IE8中不起作用