最近在用python写一个小项目,要将保存在blob中的图像文件直接显示在html页面上,以前都是用asp代码来完成这样的要求。
用户的数据是sql server 2000 ,直接下了一个pywin32使用它的ado对象来访问sql,web框架选用的是django ,在把数据从数据库中读出后,将bytes将类型转换一下,然后使用HttpResponse()方法直接返回给客户端就可以了。具体代码如下:
1. 在 urls.py中加入这个路径:
(r'^getimg/$',getimg)
2. 在view.py 中定义如下函数:
def getimg(request):
sqlstr = "select top 1 * from tu_photo where not photo is null"
rs = scidb().get_rs(sqlstr, 1, 1) #自己封装的ado类库,返回的是数据集
#photo字段中保存着图片数据,用bytes转换了一下,
img = bytes(rs("photo"))
return HttpResponse(img)
3 . 前端的html页面代码就更简单了在需要的地方直接这样写就可以了:
<img src="http://localhost/getimg/" style="width:100%;height:100%">