2010-10-28 14 views
2

Je veux utiliser MySQLdb dans Pylons, mais ne peux pas savoir où se connecter réellement. Il semblerait que la prise de la connexion à app_globals.py serait pratique:Emplacement approprié pour configurer la connexion MySQLdb dans Pylons: app_globals? Sécurité du filetage?

class Globals(object): 
    def __init__(self): 
     self.db = MySQLdb.connect() 

Ensuite, les contrôleurs peuvent accéder à la db via globals. Cependant, cela semble conduire à des problèmes avec les erreurs "MySQL a disparu", et se bloque avec des demandes simultanées, donc je pense que c'est mauvais à cause de la sécurité des threads.

Quelle est la meilleure façon de faire cela? Chaque contrôleur devrait-il ouvrir puis fermer une connexion MySQL? Merci!

+0

Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser la valeur par défaut pour Pylons SQLAlchemy? –

+0

Je pourrais, même si je n'ai pas besoin de faire ORM. Merci d'avoir soulevé cette question, je vais voir ce que vous pouvez faire avec SQLAlchemy sans ORM. Merci! – mrjf

+0

Vous pouvez faire à peu près tout, il prend en charge les requêtes directes via sa propre implémentation sql et requêtes en texte brut, et fonctionne comme couche mince au-dessus de la bibliothèque mysqldb. –

Répondre

1

Résumer les commentaires sur votre question: vous devriez probablement utiliser les fonctionnalités non ORM de SQLAlchemy comme le SQL Expression Language et le engine API, chacun vous laisser encore quelques-uns des avantages de SQLAlchemy sans avoir besoin d'aller tout le chemin jusqu'à ORM -ness