最近在用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%">