Xrecord

Un orm introspectante Python
Descargar ahora

Xrecord Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • BSD License
  • Precio:
  • FREE
  • Nombre del editor:
  • Jakub Wroniecki
  • Sitio web del editor:

Xrecord Etiquetas


Xrecord Descripción

Un orm introspectante python Xrecord es una biblioteca que proporciona una interfaz de objeto a las bases de datos. Las tablas se representan como clases, las columnas son atributos y las filas de datos son las instancias de clase. Si usó Python para desarrollar aplicaciones de bases de datos, es posible que haya encontrado uno o más de los órmanos, como: * sqlobject * sqlalchemy * otoño * tormenta * Muchos más ... Xrecord no pretende reemplazar a ninguno de ellos, sino que proporcionan un Enfoque alternativo para el mapeo de la relación de objeto. Xrecord también trata de ser una capa de abstracción de la base de datos delgada: haz usar un RDBMS rápido y fácil sin ocultar cualquiera de sus características poderosas. ¿Por qué otro ORM? Parece que el "mercado de Python Orm" está lleno de algunas soluciones excelentes, todas las cuales hacen Lo que se espera de ellos realmente bien. Sin embargo, al usar la mayoría de ellos, encontré que todos compartían algunas decisiones de diseño, como resultado de lo cual no se ajustan exactamente a mis necesidades. La mayoría de los órminos de Python existentes requieren que realmente escriba las clases sobre las cuales se asignarán las filas de datos. . Requieren que usted defina explícitamente las claves externas en sus clases (tablas) y para describir las relaciones de muchos a muchos. Dado que toda esta información ya está dentro de sus RDBMS, creo que esto es en un pequeño conflicto con el principio seco, de los cuales soy un gran fan. Algunos órmes intentan contrarrestar este problema al dejar la definición de la base de datos (modelo) completamente en el código de Python, pero esto es solo una solución superficial, aunque su modelo se define en Python, sus datos aún se almacenan en una base de datos externa y sus estructuras hacen. No siempre tiene que estar en sincronización. La mayoría de los órminos de Python existentes están diseñados para ocultar todo SQL del programador, pero aún así permitir que se realicen consultas complejas a través de una capa de abstracción en la parte superior de la API de base de datos de bajo nivel. Esto hace que el código se vea limpio, y RDBMS independiente. Es común que las solicitudes se desarrollen y prueben con SQLite, y luego cambien a MySQL / PostgreSQL en producción, lo que es elegante y conveniente. Sin embargo, este enfoque tiene algunos problemas. Todos los RDBMS ampliamente utilizados, son proyectos maduros altamente sofisticados, con miles de horas de trabajo en desarrollo, pruebas y optimización. La mayoría de ellos presentan muchas mejoras útiles en el estándar SQL (tipos no estándar, sintaxis alternativa, etc.), que pueden perderse cuando se usa una capa de abstracción unificada (que, por cierto, puede ser una fuente de nuevos errores) .So el precio para El código limpio, y la independencia de la plataforma, pueden reducirse la funcionalidad de su sistema de base de datos. Al escribir aplicaciones rápidas y pequeñas, a menudo elijo mi back-end de RDBMS basándose en una de sus características distintivas, lo que hará que mi trabajo sea más rápido, así que busqué un ORM que hizo que lo usara más fácil, en lugar de lo más difícil, puede argumentar. Que todos los ormos mencionados anteriormente tienen hacks incorporados (o incluso características :)) para superar todos estos problemas. Eso es cierto, pero simplemente no es la forma en que se diseñaron para ser utilizados, por lo que al usar estos hacks, ya no tiene un código limpio, independiente del motor, pero a veces es aún más feo y menos mantenido que el API de bajo nivel. Características que se quedaron fuera * Sin caché de objetos, NINGÚN TIENDA * No hay forma de personalizar Seleccionar consultas sin escribir SQL * No hay generaciones automáticas de base de datos RDBMS * mysql * sqlite * Postesql (trabajo-en-progreso) Aquí hay algunas características clave de "XRECORD" : · Introspección completa, no se requiere definición de modelo en Python, · Mapeo automático de claves exteriores, tanto en los objetos referenciados como de referencia, · Detección automática de relaciones de muchos a muchos, · Cachón de referencias de clave extranjera opcional, · Extienda fácilmente las clases de registro generadas para proporcionar una funcionalidad adicional para sus objetos, · Define fácilmente las relaciones FK y MTM, que se quedaron en la definición de la base de datos, · Mapeo de objetos de cualquier declaración SQL, · Puede usarse sin escribir una sola línea de SQL, · Llaves primarias de múltiples columnas, · Objetos de conexión de base de datos diseñados para aplicaciones de larga duración. Requisitos: · Python


Xrecord Software relacionado