如何在Web2py中使用数据库中的img文件更改背景图像

时间:2015-05-11 08:28:11

标签: web2py

我要做的是使用在数据库中上传的图像文件而不是在'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)}}">

..但是我有办法实现这个吗?

3 个答案:

答案 0 :(得分:1)

请阅读Anthony´s answer

如果你包括

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

进入你的观点。

答案 1 :(得分:0)

为什么它不能用于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>
...

答案 2 :(得分:0)

<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)}}')"