我想用Django显示一张图片,它已经保存在mysql数据库中了。在所有的方法中,我发现有人使用models.Imagefield(upload_to='path'),但我认为这会将文件保存到这个目录中,其他计算机的用户以后将无法访问。
所以问题是,如何直接访问数据库并显示图片而不在中间保存?在
我已经在python中成功地做到了这一点,但我不太确定如何将代码实现到models.py中。
我的方法是这样的:class mysqlpicture(models.Model):
#mysqlpic=something?
def openpic():
connection = pymysql.connect(user='root', passwd='***',
host='localhost',
database='db')
cursor = connection.cursor()
sql1='select * from Pictures'
cursor.execute(sql1)
data=cursor.fetchall()
mysqlpic=io.BytesIO(data[1][0])#one means second element of column zero
#img=Image.open(mysqlpic)
#img.show()
cursor.close()
return mysqlpic
然后我在views.py中尝试将mysqlpic直接给予httpresponse,如下所示:
^{pr2}$
使用模板pic.html插入图片,如:
{% for n in query_results %}
{% endfor %}