Flask_GoogleMap, показывающий изображение base64 в информационной строке
GoogleMaps ( https://github.com/rochacbruno/Flask-GoogleMaps) для отображения изображений на карте Google.
Изображение извлекается из базы данных MySQL и преобразуется в кодировку base64. Однако я сталкиваюсь с такими ошибками:
TypeError: Объект типа 'Decimal' не поддерживает сериализацию в формате JSON.
Я пытался найти решение, но безуспешно. Может кто-нибудь дать мне несколько советов?
Спасибо!
Соответствующий код в Python3 выглядит следующим образом:
@app.route('/fullmap')
def fullmap():
db = MySQLdb.connect(user='root', password='', host='127.0.0.1', database='userprofile')
query = ("SELECT lat, lng, user_avatar FROM user")
cursor = db.cursor()
cursor.execute(query)
for (lat, lng, user_avatar) in cursor:
icon = '//maps.google.com/mapfiles/ms/icons/green-dot.png'
b64_content = base64.b64encode(user_avatar)
dataurl = 'data:image/jpeg;base64,' + b64_content.decode()
srcurl = "<img src='" + dataurl + "' />"
markers.append({'icon': icon, 'lat': lat, 'lng': lng, 'infobox': srcurl})
fullmap = Map(
identifier="fullmap",
varname="fullmap",
style=(
"height:100%;"
"width:100%;"
"top:0;"
"left:0;"
"position:absolute;"
"z-index:200;"
),
lat=37.3,
lng=127.0,
markers=markers
)
return render_template(
'example_fullmap.html',
fullmap=fullmap,
GOOGLEMAPS_KEY=request.args.get('apikey')
)