2009-07-20 14 views
21

¿Alguien ha usado SQLAlchemy además de Django 's ORM?SQLAlchemy y django, ¿está lista para producción?

Me gustaría utilizar el ORM de Django para la manipulación de objetos y SQLalchemy para consultas complejas (como las que requieren combinaciones externas izquierdas).

¿Es posible?

Nota: Conozco django-sqlalchemy pero el proyecto no parece estar listo para producción.

Respuesta

17

Lo que yo haría,

  1. Definir el esquema de ORM de Django, vamos a escribir que el PP a través de syncdb. Obtienes la interfaz de administrador.

  2. En Vista1 necesita una combinación compleja

 

    def view1(request): 
     import sqlalchemy 
     data = sqlalchemy.complex_join_magic(...) 
     ... 
     payload = {'data': data, ...} 
     return render_to_response('template', payload, ...) 
 
6

No creo que sea una buena práctica usar ambas. Usted deberá:

  1. ORM y el uso de SQL personalizado de Uso Django donde de Django incorporado en la generación de SQL no se ajusta a sus necesidades, o
  2. Uso SQLAlchemy (que le da un control más fino en el precio de la complejidad añadida) y, si es necesario, use una capa declarativa como Elixir para hacer la vida un poco más fácil.

Por supuesto, si necesita el administrador de Django, entonces se recomienda el primero de estos enfoques.

+2

¿Podría explicar por qué no es una buena práctica usar ambas? –

+5

No es una regla difícil y rápida: simplemente no tiene sentido tener dos componentes en un sistema que hagan lo mismo. Es factible, por supuesto. Mucho depende de si es una aplicación de hobby, el tamaño del equipo de desarrollo, etc. –

4

Jacob Kaplan-musgo admitió a escribir "sqlalchemy importación" de vez en cuando. Puedo escribir un adaptador de queryset para los resultados de sqlalchemy en un futuro no muy lejano.

6

Lo he hecho antes y está bien. Utilice la función SQLAlchemy, donde puede leer en el esquema, de modo que no necesite declarar sus campos dos veces.

Puede obtener la configuración de conexión de la configuración, el único problema es cosas como los diferentes sabores del controlador de postgres (por ejemplo, con psyco y sin).

Vale la pena ya que las cosas de SQLAlchemy son mucho más agradables para cosas como combinaciones.

Cuestiones relacionadas