use*_*920 5 python jinja2 flask
我正在尝试使用 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>
Run Code Online (Sandbox Code Playgroud)
我有一个 css 文件和一个布局文件,它提供了模板的默认行为。我怎样才能有一个漂亮的背景图片?
您似乎试图告诉前端使用应用程序路由而不向其传递正确的命令。我假设你正在使用 Flask。真的,有两种方法(我能想到的)来切片这个面包,这取决于你。第一个是仅使用标准 html 而不是嵌入 python 来路由应用程序来查找文件,如下所示:
<body background="/path/to/image.jpg">
Run Code Online (Sandbox Code Playgroud)
但是,如果您想利用框架和模板,那么您应该使用内置方法 url_for
它看起来像这样:
<body background="{{ url_for('static', filename=commPageData.background_image) }}">
Run Code Online (Sandbox Code Playgroud)
“static”是应用程序中该图像所在的目录。
现在,我不确定 commPageData.background_image 来自您的应用程序中的位置。我的代码片段假设它被用作一个值,如果传递回逻辑它会识别它,如果这有意义的话,并且它需要位于您告诉 url_for 方法查找它的位置,即使是动态生成的。如果您确实想要将特定图像渲染为背景,则需要适当指定:
<body background="{{ url_for('static', filename='image.jpg') }}">
Run Code Online (Sandbox Code Playgroud)
当然,它在 HTML5 中已被弃用,并且可能无法在许多浏览器中正确呈现。最好使用 CSS 来代替
<body style="background:url({{'images/'+commPageData.background_image}});">
Run Code Online (Sandbox Code Playgroud)
或者直接将其放入 CSS 文件中
| 归档时间: |
|
| 查看次数: |
11166 次 |
| 最近记录: |