tutorial example python postgresql sqlalchemy psycopg2

example - sqlalchemy python



¿SQLAlchemy o psycopg2? (2)

Para hablar con la base de datos cualquiera necesita un controlador para eso. Si está utilizando un cliente como SQL Plus para Oracle, MysqlCLI para Mysql, se ejecutará directamente la consulta y ese cliente vendrá con el paquete DBServer.

Para comunicarse desde el exterior con cualquier idioma como java, c, python, C # ... Necesitamos un controlador para esa base de datos. psycopg2 es un controlador para ejecutar la consulta de PostgreSQL desde python.

SQLAlchemy es el ORM que no es el mismo que el controlador de base de datos. Le dará flexibilidad para que pueda escribir su código sin ningún estándar de base de datos específico. ORM proporciona independencia de base de datos para el programador. Si escribe object.save en ORM, comprobará qué base de datos está asociada con ese objeto y generará una consulta de inserción de acuerdo con la base de datos de back-end.

Estoy escribiendo un script rápido y sucio que requiere interacción con una base de datos (PG).

El script es una solución táctica pragmática a un problema existente. sin embargo, me imagino que el script evolucionará con el tiempo hacia un sistema más "refinado". Dado el hecho de que actualmente se está armando muy rápidamente (es decir, no tengo tiempo para verter una gran cantidad de documentación), estoy tentado de ir por el camino rápido y sucio, usando psycopg.

Las ventajas para psycopg2 (como lo entiendo actualmente) es que:

  1. escrito en C, tan rápido que sqlAlchemy (escrito en Python)?
  2. No hay capa de abstracción sobre el DBAPI ya que funciona solo con una db y una db (implicación -> rápido)
  3. (Por ahora), no necesito un ORM, por lo que puedo ejecutar directamente mis sentencias de SQL sin tener que aprender una nueva sintaxis de ORM (es decir, ligero)

Desventajas:

  1. SÉ que querré un ORM más abajo en la línea
  2. psycopg2 es (¿"fecha"?) - no sé cuánto tiempo permanecerá alrededor

¿Son ciertas mis percepciones de SqlAlchemy (curva de aprendizaje lenta / interpretada, hinchada, empinada)? De todos modos, puedo usar sqlAlchemy en la forma "aproximada y lista" en que quiero usar psycopg - a saber:

  1. ejecutar instrucciones SQL directamente sin tener que meterse con la capa ORM, etc.

¿Algún ejemplo de hacer esto disponible?


SQLAlchemy es un ORM, psycopg2 es un controlador de base de datos. Estas son cosas completamente diferentes: SQLAlchemy genera sentencias de SQL y psycopg2 envía sentencias de SQL a la base de datos. SQLAlchemy depende de psycopg2 u otros controladores de base de datos para comunicarse con la base de datos.

Como una capa de software bastante compleja, SQLAlchemy agrega cierta sobrecarga, pero también es un gran impulso para la velocidad de desarrollo, al menos una vez que aprendió la biblioteca. SQLAlchemy es una excelente biblioteca y te enseñará todo el concepto de ORM, pero si no quieres generar sentencias de SQL para comenzar, entonces no quieres SQLAlchemy.