O padrão do Python Flask é a comunicação com o MySQL no utf-8 do MySQL, ou seja, ele não pode lidar com o intervalo utf8mb4 completo (que inclui emojis). O Flask substituirá as configurações do conjunto de caracteres do banco de dados, incluindo a configuração do servidor do conjunto de caracteres em my.cf. Adicionar a seguinte configuração ao aplicativo Flask corrige o problema, forçando-o a se comunicar com o MySQL em utf8mb4:
app.config['MYSQL_DATABASE_CHARSET'] ='utf8mb4'