ORM Django

Medardo Rodriguez med.swl en gmail.com
Jue Ago 21 18:54:48 CEST 2008


On Thu, Aug 21, 2008 at 11:55 AM, Otto Machado
<ottomachado en infomed.sld.cu> wrote:
> Puede alguien explicarme como yo podria controlar de forma "elegante" el
> proceso de abrir y cerrar una conexión con una BD con el ORM de Django?. Yo
> no quiero abrir multiples conexiones.


Eso no tendría mucha importancia en gestores fuertes de bases de
datos. Se ha establecido como norma que se cacheen las conexiones y
por tanto no hay diferencias apreciables de rendimiento entre una
variante de abrir una única conexión para hacer varias operaciones, o
por cada una.
Claro que esto está más en el plano de qué gestor uses, cómo crees tu
DB y tus tables, que opciones le asignes, etc.
Pero esto es algo que siempre debería estar encapsulado en este plano
y no a nivel de ningún Middleware.

> Lo que sucede es que tengo un conjunto
> de DB en sqlite todas iguales pero con diferentes datos,  y desde la web el
> usuario tiene que tener la posibilidad de escoger de cual DB desea ver los
> datos. Que hacer?

No sé si para esto otra hay alguna vía estándar, se me ocurre que como
la DB se configura dentro de «<project>/settings.py», podrías crear un
proyecto por cada DB, usando links (o shortcuts si Windows) para todo
lo común y sólo teniendo este fichero distinto, quizás también el
«urls.py». Esto sería muy bueno si ambos tienen una versión común, en
cada proyecto se hace:
* en el settings.py: from common_settings import *
* en el urls.py: from common_urls import *

Y en cada uno se modifican las cosas específicas. Claro que tendrías
que configurar un sitio por cada uno.
Mis conocimientos de DJango son escazos aún, tengo lo siguiente
pendiente de estudiar y esto puede tener tu solución:
http://www.djangoproject.com/documentation/sites/

Saludos
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es