2015-05-11 64 views
0

我正在嘗試使用上傳到數據庫中的圖像文件而不是'static', 'images'文件夾來更改背景圖像。如何在Web2py中使用img文件更改背景圖片

我顯然不能在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)}}"> 

..但有沒有一種方法,我可以實際實現這一目標?

回答

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

非常感謝安東尼。這樣可行! –

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> 
... 
+0

的'image'功能是不必要的,因爲web2py會已經包含了流上傳文件的一個內置工具。否則,這種方法應該工作。 – Anthony

1

請閱讀Anthony´s answer

有了這個,如果你有

<style> 
    body { 
     background: url('{{=URL('download',args=picture_name)}}') 
    } 
</style> 

到您的看法應該是可能的。

+0

感謝您的回答,我嘗試了不同的方式,但它似乎並沒有工作出於某種原因。 –

+1

這很接近,但URL必須用引號包圍:'url('{'= URL('download',args = pic_row.pics)}}')'。 – Anthony

+0

@安東尼謝謝!更新。 – Rockbot