【问题标题】:Django Db Images videoDjango Db 图片视频
【发布时间】:2011-03-08 04:40:57
【问题描述】:

如何通过 Django 将图像、视频和音频存储在 Mysql 数据库中?

我知道我可以存储指向图像、视频、音频或图像、视频、音频本身的链接。

但这究竟是如何工作的。

我了解模型以及它们如何通过 manage.py 创建表。 但是有没有关于如何通过 Django 创建图像(例如 jpg、tiff 等)数据库的好教程。

谢谢

L.

【问题讨论】:

    标签: database django image store


    【解决方案1】:

    Daniel 指的是在数据库中存储大型二进制文件效率不高。请改用文件系统 - 看看 FileField 和 ImageFileField,它们旨在处理文件上传:

    http://docs.djangoproject.com/en/dev/ref/models/fields/#filefield

    数据库中唯一存储的是二进制文件的路径。

    【讨论】:

    • 非常感谢您的帮助!
    【解决方案2】:

    你需要的模型 models.py

    from django.db import models
    
    class Video(models.Model):
        name= models.CharField(max_length=500)
        file= models.FileField(upload_to='videos/', null=True, verbose_name="")
    

    你需要forms.py的表单类

    from .models import Video
    
    class VideoForm(forms.ModelForm):
        class Meta:
            model= Video
            fields= ["name", "file"]
    

    在views.py中

    from django.shortcuts import render
    from .models import Video
    from .forms import VideoForm
    
    def showvideo(request):
    
        firstvideo= Video.objects.last()
    
        videofile= firstvideo.file.url
    
    
        form= VideoForm(request.POST or None, request.FILES or None)
        if form.is_valid():
            form.save()
    
        context= {'file_url': videofile,
                  'form': form
                  }
    
        return render(request, 'videos.html', context)
    

    最后是你的模板:videos.html

    <body>
    
    <h1>Video Uploader</h1>
    <form enctype="multipart/form-data" method="POST" action="">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Upload"/>
    </form>
    
    <br>
    <video width='600' controls>
        <source src='{{ file_url }}' type='video/mp4'>
        File not found.
    </video>
    <br>
    </p>
    
    </body>
    

    【讨论】:

      【解决方案3】:

      不,没有关于此的教程。 Django 不支持开箱即用,而且效率极低。不要这样做。

      【讨论】:

      • ?那么如何在 django 中创建图像数据库呢?什么是非常有效的方法?您如何创建一个显示所有图像的网站。作为学习django的项目?你的回答不是很有帮助。
      • @MacPython 您使用文件系统,在 Django 中您可以使用 FileField,它是数据库中文件系统上文件的相对路径。
      猜你喜欢
      • 2012-08-28
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      相关资源
      最近更新 更多