Xrecord

een introspecterende python orm
Download nu

Xrecord Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Jakub Wroniecki
  • Uitgever website:

Xrecord Tags


Xrecord Beschrijving

Een introspecting Python ORM XRecord is een bibliotheek die een objectinterface om databanken verschaft. Tabellen worden weergegeven als klassen, kolommen attributen en rijen gegevens klasseninstanties. Als je Python gebruikt voor het ontwikkelen van database-toepassingen die u zijn gekomen over een of meer van ORM, zoals: * SQLObject * SQLAlchemy * Autumn * Storm * nog veel meer ... XRecord is niet bedoeld om een van hen te vervangen, maar eerder - zorgen voor een alternatieve benadering van Object-Relation mapping. XRecord probeert ook een dunne Database Abstraction Layer zijn -? Maken met behulp van een RDBMS snel en eenvoudig, zonder het verbergen van een van haar krachtige features.Why ander ORM Het lijkt erop dat de "Python ORM markt" is gevuld met een aantal uitstekende oplossingen, die allemaal te doen wat er van hen verwacht echt goed. Echter, tijdens het gebruik van de meeste van hen vond ik dat ze allemaal delen een aantal ontwerpbeslissingen, als gevolg waarvan zij niet precies mijn needs.Most bestaande Python ORM moet u passen om daadwerkelijk schrijven van de klassen waarop rijen gegevens in kaart gebracht . Ze vereisen dat u de buitenlandse sleutels expliciet te definiëren in uw klassen (tabellen) en aan de many-to-many relaties te beschrijven. Omdat al deze informatie is reeds in uw RDBMS, ik denk dat dit te worden in een klein conflict met de DRY principe, waarvan ik ben een grote fan. Sommige ORM proberen dit probleem tegen te gaan door het verlaten van de database (model) definitie volledig in Python-code, maar dit is slechts een oppervlakkige oplossing - ook al is uw model is gedefinieerd in Python, uw gegevens nog steeds opgeslagen in een externe database en hun structuren doen hebben niet altijd in sync.Most bestaande Python ORM zijn ontworpen om alle SQL van de programmeur te verbergen, maar nog steeds de mogelijkheid complexe queries uit te voeren door middel van een abstractielaag put op de top van low-level database-API. Dit maakt de code uiterlijk schoon, en RDBMS onafhankelijk. Het is gebruikelijk voor toepassingen worden ontwikkeld en getest met SQLite, en vervolgens in MySQL / PostgreSQL productie, die zowel elegant en convenient.However deze aanpak een aantal problemen. Alle van de meest gebruikte RDBMS, zijn zeer geavanceerde, rijpe projecten, met duizenden manuren in de ontwikkeling, het testen en optimalisatie te zetten. De meesten van hen te introduceren vele handige verbeteringen aan de SQL-standaard (niet standaard types, alternatieve syntax, etc), die verloren kan gaan wanneer het gebruik van een unified abstraction layer (die, tussen haakjes, kan een bron van nieuwe bugs zijn) Dus de prijs voor de schone code, en platformonafhankelijkheid, kan tot een verminderde functionaliteit van uw database systeem. Als het snel schrijven, kleine toepassingen kies ik vaak mijn RDBMS back-end op basis van een van de onderscheidende kenmerken, die mijn werk sneller zal maken, dus ik gezocht naar een ORM, die gemaakt met behulp van het gemakkelijker, in plaats van meer difficult.Some kunnen stellen, dat alle bovengenoemde ORM hebben een ingebouwde hacks (of zelfs voorzien van :)) om al deze problemen te overwinnen. Dat is waar, maar het is gewoon niet de manier waarop ze zijn ontworpen om gebruikt te worden - dus met behulp van deze hacks, hoeft u niet langer schoon, motor-onafhankelijke code, maar soms is het nog lelijker en minder onderhouden dan de low-level API.Common ORM features die werden weggelaten * geen object caching, geen Store * geen manier om SELECT queries aan te passen zonder het schrijven van SQL * geen geautomatiseerd gegevensbestand generationSupported RDBMS * MySQL * SQLite * PostgeSQL (work-in-progress) Hier zijn een aantal belangrijke eigenschappen van "XRecord" : · Volledige introspectie, geen model definitie in Python vereist, · Automatische externe sleutel in kaart brengen, zowel in de verwezen en verwijzen naar voorwerpen, · Automatische veel-op-veel relatie detectie, · Optionele buitenlandse key referenties caching, · Eenvoudig uitbreiden recordwinst klassen om extra functionaliteit te bieden voor uw objecten, · Eenvoudig aangeven FK en MTM relaties, die in de databasedefinitie bleven, · Object-mapping van elke SQL-instructie, · Kan worden gebruikt zonder het schrijven van een enkele lijn van SQL, · Meerdere kolommen primaire sleutels, · Database connectie objecten ontworpen voor langlopende toepassingen Vereisten: · Python


Xrecord Gerelateerde software