在django模型中保存图像文件
我想在一个表(django模型)中的属性“imgsrc”下存储大量图像。我该怎么做?我在网上看到了很多资料,但我没有得到任何地方的完整信息。我需要在settings.py中进行哪些更改,以及将图像文件存储在何处 models.py的一部分在django模型中保存图像文件,django,Django,我想在一个表(django模型)中的属性“imgsrc”下存储大量图像。我该怎么做?我在网上看到了很多资料,但我没有得到任何地方的完整信息。我需要在settings.py中进行哪些更改,以及将图像文件存储在何处 models.py的一部分 class elementdetails(models.Model): sid=models.IntegerField() imgsrc=models.ImageField() soundsrc=models.FileField()
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField()
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
在您的
settings.py中设置MEDIA\u ROOT
和MEDIA\u URL
:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
在您的url.py
中,添加:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
确保根目录中有media
目录
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField(upload_to='elements/')
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
现在,您还可以在模型中使用上载到的将这些图像存储在目录中
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField(upload_to='elements/')
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
要在模板中获取图像,请使用:
<img src="{{ object.imgsrc.url }}" alt="image">
form = Form(request.POST, request.FILES)
另外,确保在视图中使用:
<img src="{{ object.imgsrc.url }}" alt="image">
form = Form(request.POST, request.FILES)
它将工作。在您的设置中设置MEDIA\u ROOT
和MEDIA\u URL
:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
在您的url.py
中,添加:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
确保根目录中有media
目录
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField(upload_to='elements/')
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
现在,您还可以在模型中使用上载到的将这些图像存储在目录中
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField(upload_to='elements/')
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
要在模板中获取图像,请使用:
<img src="{{ object.imgsrc.url }}" alt="image">
form = Form(request.POST, request.FILES)
另外,确保在视图中使用:
<img src="{{ object.imgsrc.url }}" alt="image">
form = Form(request.POST, request.FILES)
它会起作用。请用表单发布您的视图和模板。请用表单发布您的视图和模板。如果我有以下结构:mysite/myapp/那么上面的url.py是myapp的,对吗?还有媒体目录是在哪里制作的?在mysite或myapp中?是的,myapp
中的url.py
,以及mysite
目录中的media
目录。没关系,一点问题都没有。现在试试,它会工作的。我已经为mysite/media创建了一个目录…但是我已经将upload_写入了class='elements/'…这里的元素是什么,在哪里创建?好的,所以media
目录将是存储所有媒体文件的地方。我们可能有不同型号的ImageField
,因此最好将每个型号的images
存储在媒体的不同目录中。因此,如果您上载此模型中的任何图像,它将存储在media/elements/filename.png
中,其中filename.png
是您上载的图像。如果我具有以下结构:mysite/myapp/则上面的url.py是myapp的,对吗?还有媒体目录是在哪里制作的?在mysite或myapp中?是的,myapp
中的url.py
,以及mysite
目录中的media
目录。没关系,一点问题都没有。现在试试,它会工作的。我已经为mysite/media创建了一个目录…但是我已经将upload_写入了class='elements/'…这里的元素是什么,在哪里创建?好的,所以media
目录将是存储所有媒体文件的地方。我们可能有不同型号的ImageField
,因此最好将每个型号的images
存储在媒体的不同目录中。因此,如果您上载此模型中的任何图像,它将存储在media/elements/filename.png
中,其中filename.png
是您上载的图像。