Как на самом деле установить кодировку utf-8 в SQLAlchemy / Postgres в Python - PullRequest
0 голосов
/ 24 сентября 2019

Я занимаюсь разработкой веб-приложения с использованием 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...