gpt4 book ai didi

django - 媒体文件中的图像不会显示在 django 模板中

转载 作者:行者123 更新时间:2023-12-04 01:32:39 25 4
gpt4 key购买 nike

我是 django 的新手,我一直在玩上传图片然后显示它们。 ...很好地展示它们。

每当我尝试从模板显示图像时,我都会得到损坏的图像链接图标。

我正在使用 sqlite3 服务器

设置.py

ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
def location(f):
return os.path.join(ROOT_DIR, f)
MEDIA_URL = 'http://127.0.0.1:8000/media/'
MEDIA_ROOT = location('media/')

模型.py

class Image(models.Model):
image = models.ImageField(upload_to = 'images/')

View .py

from imageupload.settings import MEDIA_ROOT, MEDIA_URL

def main(request):
imgs = Image.objects.all()
return render_to_response('index.html', {'images': imgs, 'media_root': MEDIA_ROOT, 'media_url': MEDIA_URL})

网址.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

现在我刚刚使用管理员上传图片。这似乎工作正常,他们去我期望的地方

但是当我尝试显示它们时:
模板

<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />

{% for img in images %}
<img src="{{ media_root }}{{ img.image.name }}" />
<img src="{{ media_url }}{{ img.image.name }}" />
<img src="{{ img.image.url }}" />
{% endfor %}
</html>

我得到每个 splinter 的图标。
浏览器源代码向我展示了:

<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
</html>

有道理,我只上传了一张照片。
如果我复制其中一个硬链接(hard link)并将其放入其他一些 html 文件中......它可以工作

最佳答案

对我来说,我做了以下两件事:

中定义媒体 url设置.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

然后在项目的 urls.py , 为开发和生产目的定义服务 url:
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('django_app.urls')),
]
# Serving the media files in development mode
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
else:
urlpatterns += staticfiles_urlpatterns()

然后您可以像这样引用模板中媒体文件夹中的图像:
<img src="media/path_to_image" />

注意:不要忘记设置 调试 标记为 错误 在 settings.py 中进行生产。

关于django - 媒体文件中的图像不会显示在 django 模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com