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(您可能需要清理它)。我只希望你这不是生产数据。
我的 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(您可能需要清理它)。我只希望你这不是生产数据。