4

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

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

但这究竟是如何工作的。

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

谢谢

L.

4

3 回答 3

4

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

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

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

于 2010-06-29T15:41:42.773 回答
4

你需要的模型 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"]

内部视图.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>
于 2019-02-12T11:03:22.337 回答
0

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

于 2010-06-25T09:14:54.483 回答