Flask проблема с отображением символов кириллицы
Я пишу сервер на Flask, база данных MySQL, когда я вывожу таблицу на сайте, то символы кириллицы отображаются как символы юникода:
{
"posts": [{
"body": "\u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
"id": 8,
"title": "\u0442\u0435\u0441\u0442"
}, {
"body": "english symbols",
"id": 9,
"title": "test"
}]
}
Я пытался указывать кодировку utf8 и отключение ASCII в JSON, но это не работает:
URI базы данных:
'mysql+mysqlconnector://root:password@localhost/api_test?auth_plugin=mysql_native_password&charset=utf8'
Создание экземпляра Flask:
app = Flask(__name__)
app.config.from_object(Configuration)
app.config['JSON_AS_ASCII'] = False
Код модели таблицы и функций:
class Task(db.Model):
__tablename__ = 'tasks'
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(255), nullable=False)
description = db.Column(db.String(255), nullable=False)
def __repr__(self):
return "<{}:{}>".format(self.id, self.title[:10])
@app.route('/tasks', methods=['GET'])
def get_tasks():
posts = Task.query.all()
return {'posts': [{'id': post.id, 'title': post.title, 'body': post.description} for post in posts]}
@app.route('/tasks/<title>/<description>', methods=['POST'])
def put_task(title, description):
post = Task(title=title, description=description)
db.session.add(post)
db.session.commit()
return 'New user added'