我想显示使用Django,这已经是保存在MySQL数据库中的图片。在所有的方法中,我发现人们使用models.Imagefield(upload_to='path')
,但我认为这会将文件保存到这个目录中,而其他计算机的人们以后将不能访问。 所以问题是,我如何直接访问数据库并显示图片而不保存它们之间?显示通过Django的图片保存在MySQL数据库
我已经成功地做到这一点在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这样的:使用模板pic.html
插入图片一样
def MysqlView(request):
query_results = mysqlpicture.objects.all()
template = loader.get_template('polls/pic.html')
context = {
'query_results': query_results,
}
return HttpResponse(template.render(context, request))
:
{% for n in query_results %}
<mysqlpic src="{{ n.mysqlpic.url }}" />
{% endfor %}
有一个人在正确的道路的想法如何来的?
如何将返回BinaryField然后在模型中,这样我可以在以后显示的画面?例如, – user8496104
@ user8496104将您的二进制数据转换为base64。我更新了答案,请检查。 –