Flask-SQLAlchemy с помощью Amazon RDS - PullRequest
       46

Flask-SQLAlchemy с помощью Amazon RDS

0 голосов
/ 19 ноября 2018

My Flask-SQLAlchemy имеет подключение через Amazon, RDS к MySQL, но есть проблема, когда я хочу поместить что-либо в свою базу данных на русском языке, все мои заметки получаются в шаблонах как ???? вместо букв. Когда я использую английский, нет проблем, но как я могу использовать русский язык?

Ниже моя конфигурация:

 app.config['SECRET_KEY'] = '123'
 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://flask:@flasktest.cuncoak8uz9k.eu-central-1.rds.amazonaws.com/flasktestdb'
 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

class User(db.Model):
     id = db.Column(db.Integer, primary_key = True)
     name = db.Column(db.String(120), unique = True)


     new = User(name = 'Дмитрий') # name written in Russian language
     {{new.name}} # i receive ??????? instead of a Дмитрий

Как можно получить new.name на языке, на котором я его написал?

1 Ответ

0 голосов
/ 20 ноября 2018

Похоже, что RDS по умолчанию кодирует базы данных на латинице-1.Вы хотите, чтобы ваша база данных была закодирована в utf-8.Вы можете легко найти, как это сделать в Интернете, но в этом посте на форумах разработчиков AWS подробно описывает шаги.

Вкратце: создайте группу параметров db, указывающую правильную кодировку.Воссоздает вашу базу данных с ранее созданным дампом, который вы гарантировали, указав в кодировке utf-8.Все предыдущие данные («???????») не могут быть преобразованы в utf-8 (вам может понадобиться очистить это).Я просто надеюсь, что это не были производственные данные.

...