Flask-SQLAlchemy 通过亚马逊 RDS

Flask-SQLAlchemy via amazon RDS

我的 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 我编写的语言?

RDS 似乎默认使用 Latin-1 编码数据库。您希望数据库以 utf-8 编码。 您可以在网上轻松找到如何执行此操作,但 this post on AWS Developer Forums 详细说明了步骤。

简而言之:创建一个指定正确编码的数据库参数组。使用先前创建的转储重新创建数据库,您确保在编码中指定 utf-8。所有以前的数据(“????????”)不能转换为 utf-8(您可能需要清理它)。我只希望你这不是生产数据。