如果您绝对需要将图像存储在数据库中,那么是的,这是正确的。通常,文件存储在文件系统中,路径存储在数据库中。这是更好的解决方案,因为与动态发送大量数据的应用程序不同,Web服务器通常具有一种从文件系统提供文件的高效方法。
要提供图像,请编写一个获取图像数据并将其作为响应发送的视图。
@app.route('/event/<int:id>/logo')def event_logo(id): event = Event.query.get_or_404(id) return app.response_class(event.logo, mimetype='application/octet-stream')<img src="{{ url_for('event_logo', id=event.id }}"/>最好使用正确的模仿类型而不是
application/octet-stream。
您也可以使用数据uri将图像数据直接嵌入html中。这不是最理想的,因为每次页面渲染时都会发送数据uri,而客户端可以缓存图像文件。
from base64 import b64enpre@app.route('/event/<int:id>/logo')def event_logo(id): event = Event.query.get_or_404(id) image = b64enpre(event.logo) return render_template('event.html', event=event, logo=image)<p>{{ obj.x }}<br/>{{ obj.y }}</p><img />


