python - jinja2 设置背景图像

标签 python flask jinja2

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

举个例子,我试过这个:

{% 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>

我有一个 css 文件和一个为模板提供默认行为的布局文件。我怎样才能拥有我所服务的漂亮背景图片?

最佳答案

您似乎试图告诉前端使用应用程序路由,而不向其传递正确的命令。我假设您正在使用 Flask。真的,有两种方法(我能想到)来切这个面包,这取决于你。第一种是仅使用标准 html 而不是嵌入 python 来路由应用程序以查找文件,看起来像:

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

但是,如果你想利用框架和模板,那么你应该使用内置方法 url_for

看起来像这样:

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

'static' 是此图像所在的应用程序中的目录。

现在,我不确定 commPageData.background_image 在您的应用程序中的来源。我的代码片段假设它被用作一个值,如果传递回逻辑它会识别,如果这有意义,并且它需要在你告诉 url_for 方法查找它的地方,即使是动态生成的。如果您确实有一个特定的图像要渲染为背景,则需要适本地指定它:

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

当然,在 HTML5 中已被弃用,并且可能无法在许多浏览器中正确呈现。最好使用 CSS 而不是

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

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

关于python - jinja2 设置背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023107/

相关文章:

python - 有没有办法在 React Native 应用程序中使用我的 Python 代码?

python - 模板继承: pass data from parent to child

python - Jinja2 中是否可以根据子属性对对象列表进行排序?

Python Flask POST 400 错误请求错误

python - Flask 中的 Thread Local Objects 是什么意思?

python - jinja 中的 Base64 解码字符串

python - 更快的字节数组列表理解/转换?

python - 编写等效的 GNU/Linux 命令

python - Django 从 1.7.1 升级到 1.9.2。导入错误 : cannot import name 'importlib'

python - 如何覆盖 python 应用引擎模型上的 put() 方法?