Skip to main content
 首页 » 编程设计

python之在 Django 模板中使用静态文件

2024年08月19日33shangdawei

我正在尝试让我的媒体目录中的文件出现在 HTML 模板中。我正在使用“Tango with Django”这本书作为教程。

这是我的settings.py:

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

这是views.py:

  def about(request): 
 
    return render(request, 'rango/about.html', ) 

还有我的 about.html 模板:

<!DOCTYPE html> 
{%load staticfiles%} 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>About</title> 
</head> 
<body> 
<h1>This is the about page</h1> 
<img src="{{MEDIA_URL}} {{cat.jpg}}" 
     alt="cats are funny"/> 
<div> 
    <a href="/rango/"> Index </a> 
</div> 
</body> 
</html> 

我知道我一定遗漏了一些非常明显的东西,但我一辈子都弄不明白!

请您参考如下方法:

{{MEDIA_URL}} 标签已弃用。使用 {% get_media_prefix %}标记,而不是。

<img src="{% get_media_prefix %}cat.jpg" alt="cats are funny"/> 

来自文档:

Similar to the get_static_prefix, get_media_prefix populates a template variable with the media prefix MEDIA_URL.

呈现时,src 属性将等同于 /media/cat.jpg。您可能需要考虑在 settings.py 中使用 STATIC_ROOT,同时使用 {% static %} 标记:

<img src="{% static 'cat.jpg' %}" alt="cats are funny"/>