如何通过 Django 在 Mysql 数据库中存储图像、视频和音频?
我知道我可以存储指向图像、视频、音频或图像、视频、音频本身的链接。
但这究竟是如何工作的。
我了解模型以及它们如何通过 manage.py 创建表。但是有没有关于如何通过 Django 创建图像(例如 jpg、tiff 等)数据库的好教程。
谢谢
L.
Daniel 指的是在数据库中存储大型二进制文件效率不高。请改用文件系统 - 看看 FileField 和 ImageFileField,它们旨在处理文件上传:
http://docs.djangoproject.com/en/dev/ref/models/fields/#filefield
唯一存储在数据库中的是二进制文件的路径。
你需要的模型 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>
不,没有这方面的教程。Django 不支持开箱即用,而且效率极低。不要这样做。