我要做的是使用在数据库中上传的图像文件继续更改背景图像,而不是在'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)}}">
..但是有什么方法我可以实现这一目标?
请阅读安东尼的答案。
如果您包括
,应该有可能<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>
...