Python 在Django的基础模板中设置背景图像

Python 在Django的基础模板中设置背景图像,python,django,Python,Django,这是我的Django项目的结构- src/ login_manager/ migrations/ .... __init__.py admin.py apps.py models.py views.py tests.py urls.py port/ __init__.py settings.py

这是我的Django项目的结构-

src/
    login_manager/
        migrations/
            ....
        __init__.py
        admin.py
        apps.py
        models.py
        views.py
        tests.py
        urls.py
    port/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    static/
        admin/
            .....
    templates/
        login_manager/
            login.html
            .....
        __base.html
    media/
        image/
            containers.jpg
    manage.py
requirements.txt
这里,我的项目的名称是端口。在这个项目下有一个名为“登录管理器”的应用程序。我正在尝试为\uu base.html模板添加背景图像。但出于某些原因,它正在失败

这是我的\uu base.html-

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>GPSL Inventory Management</title>
    <meta name="viewport" content="width=device-width,
        initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!--styles-->
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.5/yeti/bootstrap.min.css">
    <style type="text/css">
        body { 
         background: url('{{ MEDIA_URL }}image/containers.jpg') no-repeat center center fixed; 
         -webkit-background-size: cover;
         -moz-background-size: cover;
         -o-background-size: cover;
         background-size: cover;
        }

        .panel-default {
          opacity: 0.9;
          margin-top:30px;
        }

        .form-group.last {
          margin-bottom:0px;
        }

        .container{
          margin: 0 auto;
        }
     </style>
    {% block extrahead %}
    {% endblock %}
</head>

<body>
    <div class="container">
        {% block content %}
        {% endblock %}
    </div>
</body>
</html>
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
如何在父模板中生成背景图像


编辑1:图像是静态的。

由于背景图像是静态文件,您应该使用静态url而不是媒体

{% load staticfiles %}

<style type="text/css">
        body { 
         background: url('{% static "image/containers.jpg" %}') no-repeat center center fixed; 
         -webkit-background-size: cover;
         -moz-background-size: cover;
         -o-background-size: cover;
         background-size: cover;
        }
</style>
{%load staticfiles%}
正文{
背景:url(“{%static”image/containers.jpg“%}”)没有固定的重复中心;
-webkit背景尺寸:封面;
-moz背景尺寸:封面;
-o-背景尺寸:封面;
背景尺寸:封面;
}
你可以在相关的网站上了解更多

中的静态文件也有很好的参考

除了服务器生成的HTML之外,web应用程序通常还需要提供呈现完整网页所需的其他文件,如图像、JavaScript或CSS。在Django中,我们将这些文件称为“静态文件”

为了正确地设置静态服务,需要格外小心,但是文档非常清楚,而且还有很多相关的问题


另一方面,媒体url与用户上传的文件有关,正如您在本文中所读到的。

此背景图像,是用户上传的还是静态的?@Wtower…它是静态的。@ni8mr如果图像是静态的,则将其保存在
静态的
目录中更为合理。总之,我应该在剩余的静态文件夹中创建一个名为image的文件夹,并将背景图像放在其中?然后,遵循你的代码?我之前试过了,但是我没有在背景中获得我的图像。是的,请注意,您需要正确设置静态文件。谢谢。我现在正试图通过以下方式设置静态文件-。几分钟后我会回来。@Wtower…..还有一个问题,在每个应用程序中创建静态文件夹是一种好的做法,还是我应该为所有静态文件保留一个通用文件夹?@ni8mr欢迎您。以某种合理的方式管理静态文件是一种很好的做法。请记住,静态文件夹的工作方式与模板不同,因此请避免在不同的应用程序中覆盖同名文件,否则您会在
collectstatic
中遇到令人不快的惊喜。