如何使用 Web2py 数据库中的 img 文件更改背景图像
How to change the background image using img file from database in Web2py
我想做的是使用上传到数据库而不是 '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)}}">
..但是有什么方法可以实现吗?
为什么它在 CSS 中不起作用?
我不确定这是最好的方法,但您肯定可以构建一个控制器,returns 来自数据库的图像?
controllers/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>
...
请阅读Anthony´s answer。
有了这个,如果你包括
应该是可能的
<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)}}')"
我想做的是使用上传到数据库而不是 '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)}}">
..但是有什么方法可以实现吗?
为什么它在 CSS 中不起作用?
我不确定这是最好的方法,但您肯定可以构建一个控制器,returns 来自数据库的图像?
controllers/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>
...
请阅读Anthony´s answer。
有了这个,如果你包括
应该是可能的<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)}}')"