Python jinja2设置背景图像

Python jinja2设置背景图像,python,flask,jinja2,Python,Flask,Jinja2,我正在尝试使用jinja2设置背景图像。我已经设法从我的dev服务器提供了我的文件,并且可以在文档中发布该图像,但是我希望它能够形成一个良好的背景,并将其他所有内容都放在上面 作为一个例子,我尝试了以下方法: {% extends "layout.html" %} {% block body %} {% if current_user.is_authenticated %} {% if commPageData.background_image %} <

我正在尝试使用jinja2设置背景图像。我已经设法从我的dev服务器提供了我的文件,并且可以在文档中发布该图像,但是我希望它能够形成一个良好的背景,并将其他所有内容都放在上面

作为一个例子,我尝试了以下方法:

{% extends "layout.html" %}

{% block body %}
  {% if current_user.is_authenticated %}
    {% if commPageData.background_image %}    
        <body background="{{'/images/'+commPageData.background_image}}">
    {% else %}
        <body>
    {% endif %}
            A thing
         </body>
{%extends“layout.html”%}
{%block body%}
{%如果当前用户是经过身份验证的%}
{%if commPageData.background_image%}
{%else%}
{%endif%}
一件事

我有一个css文件和一个布局文件,它提供了模板的默认行为。我怎样才能拥有一个好的背景图像呢?

您似乎试图告诉前端使用应用程序路由,而没有向其传递正确的命令。我猜你用的是烧瓶。真的,有两种方法(我能想到)来切面包,这取决于你。第一种是使用标准html,而不是嵌入python来路由应用程序以查找文件,如下所示:

<body background="/path/to/image.jpg">

但是,如果您想利用框架和模板,那么您应该使用内置的方法url\u

它看起来像这样:

<body background="{{ url_for('static', filename=commPageData.background_image) }}">

“static”是此映像所在的应用程序中的目录

现在,我不确定commPageData.background_图像在你的应用程序中来自何处。我的代码snip假设它被用作一个值,如果传递回逻辑,它将识别该值(如果这有意义的话),并且它需要位于您告诉url\u方法查找它的位置,即使是动态生成的。如果确实有一个特定的图像要渲染为背景,则需要适当地指定该图像:

<body background="{{ url_for('static', filename='image.jpg') }}">

当然,它在HTML5中已被弃用,在许多浏览器中可能无法正确呈现。更倾向于使用CSS来代替

<body style="background:url({{'images/'+commPageData.background_image}});"> 


或者把它直接放在你的CSS文件中

嗨,我对提供图像没有问题,你似乎在给如何做到这一点的提示。相反,我刚刚发现设置并没有添加背景。我可以像这样插入图像:。我只是不知道背景。这可能与css和layout.html有关,我不确定。body background已弃用,因此它可能取决于您的浏览器。我们更倾向于使用CSS,或者直接将它放在CSS文件中。嘿,这就是问题所在。谢谢我将你的原始帖子标记为答案,你可能想编辑它来添加你的评论…不知道这是否有意义。