我要做的是使用在数据库中上传的图像文件而不是在'static', 'images'
文件夹中更改背景图像。
我显然无法在css
中执行此操作,实际上,我不确定这是否可行。我能以某种方式在layout.html
或View
中完成这项工作吗?
如果图像不是背景图像,我会在View
中显示图像:
<img src="{{=URL('download', args=pic_row.pics)}}"/>
当然,这种显示背景图像的方法不起作用:
<section id="main" class="main row" style="background-image:{{=URL('download', args=pic_row.pics)}}">
..但是我有办法实现这个吗?
答案 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)}}')"