Qual é a boa abordagem para gerenciar a conexão do banco de dados em um aplicativo Python do Google Cloud SQL (GAE)?

Estou apenas aprendendo o Google App Engine e estou tentando descobrir uma boa abordagem para gerenciar minha conexão de banco de dados com uma instância do Google Cloud SQL (se você não usou o GC-SQL, basicamente, é o MySQL na nuvem, com alguns limitações).

Estou usando o ambiente GAE python (2.7) com a estrutura webapp2 para manipular solicitações. Eu sei que o FAQ diz que é recomendado que uma nova conexão ao DB seja feita com cada solicitação, mas não sei qual é a maneira recomendada de fechar a conexão. Toda vez que tento derrubar tabelas durante o desenvolvimento, a GC-SQL trava e "show processlist" mostra que há vários processos (provavelmente porque não estou fechando o banco de dados) e que um deles está aguardando um bloqueio ( provavelmente o processo tentando soltar as tabelas). Isso é irritante e me obriga a reiniciar a instância do GC-SQL (como reiniciar o serviço mysql-server, imagino). Há também soluços de DB ocasionais que acredito estarem relacionados ao fato de que eu não estou realmente fechando minha conexão de banco de dados.

Então, por exemplo, devo ter um destrutor na minha instância de subclasse webapp2.Requesthandler para desconectar do banco de dados? Os objetos GAE parecem estar em cache às vezes, então isso também é algo a ser considerado. Eu suponho que eu poderia apenas conectar / query / desconectar para cada consulta, mas isso parece sub-ótimo.

Eu sei que esta é uma pergunta vaga, mas espero que alguém que tenha jogado nessa área possa me dar algumas dicas.

Desde já, obrigado!

Atualizar: Eu tentei implementar um wrapper em torno de métodos que precisam de um cursot, usando a resposta de Shay como ponto de partida. Estou recebendo erros do GAE. Aqui está uma nova pergunta específica para isso:Quais são os limites de conexão do Google Cloud SQL do Google App Engine e como melhor reutilizar as conexões de banco de dados?

questionAnswers(4)

yourAnswerToTheQuestion