Я сохранил изображение профиля в mysql с типом данных blob и теперь хочу отобразить его на панели навигации. Я запрашиваю его с помощью sql и конвертирую байты в изображение png.
Моя идея состояла в том, чтобы передать изображение в сеанс flask (потому что я показываю навигационную панель в разных типах (вошел в систему и вышел из системы) и передал эту проверку с помощью session["logged_in] = True or False
. Поэтому я отправляю таким образом к сеансу, а затем попробуйте показать его в панели навигации.
Следующий navbar.html
{% if session["logged_in"] == True %}
<li class="nav-item active">
<a class="nav-link" href="/dashboard">Kontrol Paneli</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/logout">Cikis yap</a>
</li>
<li class="nav-item active">
<a class="navbar-brand" href="#">
<img src="{{session.photo}}" />
</a>
</li>
{% else %}
<li class="nav-item active">
<a class="nav-link" href="/register">Kayit olun</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/login">Login</a>
</li>
{% endif %}
Python фрагмент:
data = cursor.fetchone()
session["logged_in"] = True
session["username"] = username
image = Image.open(io.BytesIO(data["photo"]))
session["photo"] = image
Таким образом я получил сообщение об ошибке:
TypeError: Object of type PngImageFile is not JSON serializable
Я пробовал также другие решения с base64 coding et c., Но изображение всегда было повреждено, и тег изображения в html в браузере был всегда пусто.