Я занимаюсь разработкой веб-приложения с использованием Flask и базы данных Postgresql (с использованием SQLAlchemy).Работает просто отлично.За исключением небольшой проблемы: все текстовые данные представлены в некоторой кодировке, что это не utf-8 (по крайней мере, я думаю, что это не так).
Я посмотрел вокруг, чтобы найти возможные решения, и это то, что я пробовал:
- Включить эту строку в каждый файл Python в проекте:
# -*- coding: utf-8 -*-
def __init__(self):
self.engine = sql.create_engine(os.environ['DATABASE_URL'], encoding='utf8')
self.conn = self.engine.connect()
self.metadata = sql.MetaData()
И несколько вариантов этих предыдущих предметов, таких как client_encoding='utf8
вместо encoding='utf8
.Я также попробовал следующие решения:
Например, это одна из моих функций выбора (но проблема возникает вкаждый выбор / вставка / обновление функций):
def get_produtos(self, id):
produtos = sql.Table('produtos', self.metadata, autoload=True,
autoload_with=self.engine).columns
parceiros = sql.Table('parceiros', self.metadata, autoload=True,
autoload_with=self.engine).columns
q = sql.select([produtos.id, produtos.nome, parceiros.nome_parceiro,
produtos.valor, produtos.qtd_desconto,
parceiros.id_parceiro])
q = q.where(produtos.id == id)
return self.conn.execute(q).fetchall()
Программа не выдает никаких исключений, но данные просто приходят с неправильной кодировкой.
Вот как данные в моей базе данных: https://i.imgur.com/8BA1i3N.png
Вот как данные отображаются в моем приложении: https://i.imgur.com/NZBxFtl.png