flask mongoengine做一小站,model中使用FileField字段類型存儲上傳的圖片到文檔,該文檔記錄其它文本字段已經以{{ xx.字段 }}的形式顯示在html模板頁中,圖片該怎麼顯示呢?
img src={{ xx.圖片字段 }}...>肯定不行,源碼顯示為:<GridFSProxy: 018560.jpg> .net中的基本思路是建一個一般處理程序頁,將流輸出為圖片,再作為src屬性,flask或Python中沒寫過,有誰能指點一下?
走同样的路,发现不同的人生
換種方式解決了,想法是:透過src="/img/{{xx.圖片欄位.grid_id}}/" 定義為一個公共View 透過傳遞過來的字串objectid透過GridFS來取得儲存的實際圖片,輸出
from flask import Response from bson.objectid import ObjectId from mongoengine import * app.route('/img/<oid>/') def get_img(oid=None): if oid: proxy = GridFSProxy(grid_id=ObjectId(oid)) return Response(proxy.read(),mimetype='image/jpeg')
nginx+mongodbgridfs插件。不行麼?
<img src="data:image/jpeg;base64,{{xx.图片字段base64编码}}" />
其他編碼和格式以此類推, 不過注意, 古老的瀏覽器不支援這種方式.
換種方式解決了,想法是:透過src="/img/{{xx.圖片欄位.grid_id}}/" 定義為一個公共View 透過傳遞過來的字串objectid透過GridFS來取得儲存的實際圖片,輸出
nginx+mongodbgridfs插件。不行麼?
其他編碼和格式以此類推, 不過注意, 古老的瀏覽器不支援這種方式.