xiste alguma maneira segura de parametrizar nomes de banco de dados em consultas MySQ

Estou escrevendo um pequeno script python para me ajudar a automatizar a criação de bancos de dados mysql e contas associadas para meus projetos pessoais. Parte desse script é uma função que pega o nome do banco de dados como uma sequência e depois cria o banco de dado

def createDB(dbConn, dbName):
    import MySQLdb
    c = dbConn.cursor()
    query = """CREATE DATABASE %s;""";
    c.execute(query, (dbName,))

Isso não funciona porque CREATE DATABASE do MySQL pede o nome não citado do banco de dados, como em

  CREATE DATAbASE test_db

mas meu código que tenta inserir com segurança o nome do banco de dados fornecido pelo usuário na consulta cria:

  CREATE DATABASE 'test_db'

E você obtém "você tem um problema na sintaxe do MySQL perto de teste"

Mesmo que seja para uso pessoal, eu realmente não quero apenas inserir diretamente uma string fornecida pelo usuário em uma consulta de qualquer tipo. É contra a minha religião. Existe uma maneira segura de inserir um nome de banco de dados fornecido pelo usuário em uma consulta mySQL em python (ou em qualquer idioma) que garanta a entrada do usuário, comotest_db; DROP some_other_db; será rejeitado ou escapou corretamente?

questionAnswers(2)

yourAnswerToTheQuestion