Django - 从模板中的图像字段访问图像
Django - acces image from image field in the template
我做了什么:
在 models.py
:
class Image(models.Model):
img = models.ImageField(blank=True, Null=True)
现在我想访问模板中的图像。我试过了,但没有用:(myimg
是 Image
的一个实例。)
<img src="{{ myimg.img }}">
那么:如何从模板中访问图像?
另一件事:当我像那样使用我的模型时,图像存储在项目根目录中。这似乎不是一个好主意。它们应该存放在哪里?以及如何将它们存储在其他地方。
处理该问题的其他一些小问题:
MEDIA_URL
有什么用,它是如何工作的?
MEDIA_ROOT
有什么用,它是如何工作的?
- 非静态文件(即用户或管理员上传的文件)应该存储在哪里?
MEDIA_ROOT
是存储图像的位置。如果它们当前存储在项目根目录下,那是因为那是您定义的 MEDIA_ROOT;不要那样做。不过,您可以将它们放在系统中任何有意义的地方。
MEDIA_URL
是 URL 提供您的图片的位置。由您来配置您的网络服务器来做到这一点; Django 不会(尽管它只能在开发模式下执行。)
要访问模板中图像字段的 URL,请使用 url
属性:
<img src="{{ myimg.img.url }}">
我做了什么:
在 models.py
:
class Image(models.Model):
img = models.ImageField(blank=True, Null=True)
现在我想访问模板中的图像。我试过了,但没有用:(myimg
是 Image
的一个实例。)
<img src="{{ myimg.img }}">
那么:如何从模板中访问图像?
另一件事:当我像那样使用我的模型时,图像存储在项目根目录中。这似乎不是一个好主意。它们应该存放在哪里?以及如何将它们存储在其他地方。
处理该问题的其他一些小问题:
MEDIA_URL
有什么用,它是如何工作的?MEDIA_ROOT
有什么用,它是如何工作的?- 非静态文件(即用户或管理员上传的文件)应该存储在哪里?
MEDIA_ROOT
是存储图像的位置。如果它们当前存储在项目根目录下,那是因为那是您定义的 MEDIA_ROOT;不要那样做。不过,您可以将它们放在系统中任何有意义的地方。
MEDIA_URL
是 URL 提供您的图片的位置。由您来配置您的网络服务器来做到这一点; Django 不会(尽管它只能在开发模式下执行。)
要访问模板中图像字段的 URL,请使用 url
属性:
<img src="{{ myimg.img.url }}">