如何使用Web2Py中数据库中的IMG文件更改背景图像



我要做的是使用在数据库中上传的图像文件继续更改背景图像,而不是在'static', 'images'文件夹中更改。

我显然无法在css中这样做,实际上,我不确定是否可能。我可以以某种方式在layout.htmlView中进行此项工作吗?

这是我在 View中显示图像的方式,如果它不是打算是背景图像:

<img src="{{=URL('download', args=pic_row.pics)}}"/>

当然,这种显示背景法的方法无法使用:

<section id="main" class="main row" style="background-image:{{=URL('download', args=pic_row.pics)}}">

..但是有什么方法我可以实现这一目标?

请阅读安东尼的答案。

如果您包括

,应该有可能
<style>
    body {
        background: url('{{=URL('download',args=picture_name)}}')
    }
</style>

进入您的视图。

<section id="main" class="main row" style="background-image:{{=URL('download', args=pic_row.pics)}}">

问题中提出的上述方法很接近,但是CSS语法是不正确的。style属性应为:

"background-image: url('{{=URL('download', args=pic_row.pics)}}')"

为什么它在CSS中不起作用?

我不确定这是最好的方法,但是您肯定可以构建一个从数据库返回图像的控制器?

控制器/Random.py

def image():
    image = db(db.images ...).select().first() # get the image from db
    from io import StringIO
    stream = StringIO(image.bytes)
    response.headers['Content-Type'] = 'image/png'
    return response.stream(stream, 1024**2)

,然后将您的样式表指向它。

some_view.html

...
<style>
body { background: url("/random/image"); }
</style>
...

最新更新