在django模型中保存图像文件

在django模型中保存图像文件,django,Django,我想在一个表(django模型)中的属性“imgsrc”下存储大量图像。我该怎么做?我在网上看到了很多资料,但我没有得到任何地方的完整信息。我需要在settings.py中进行哪些更改,以及将图像文件存储在何处 models.py的一部分 class elementdetails(models.Model): sid=models.IntegerField() imgsrc=models.ImageField() soundsrc=models.FileField()

我想在一个表(django模型)中的属性“imgsrc”下存储大量图像。我该怎么做?我在网上看到了很多资料,但我没有得到任何地方的完整信息。我需要在settings.py中进行哪些更改,以及将图像文件存储在何处

models.py的一部分

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
是您上载的图像。