[Python] Programmazione web
Valentino Volonghi
dialtone a gmail.com
Sab 26 Apr 2008 22:39:27 CEST
On Sat, Apr 26, 2008 at 1:06 AM, Nicola Larosa <nico a teknico.net> wrote:
> Che rimane peraltro un'ottima soluzione per l'80% del risultato con il 20%
> dello sforzo che occorre per affrontare SQLAlchemy. E il lavoro per
> integrare quest'ultimo in Django è peraltro ripreso alla grande:
>
> Django-SQLAlchemy Update
> http://blog.michaeltrier.com/2008/4/7/django-sqlalchemy-update
Ni, SQLAlchemy e` complesso e non c'e` dubbio, ma lo e` specialmente quando
si vuole usare al 100% e in quel caso semplifica molto la vita in
realta`. Ad esempio
nel nostro db abbiamo quelle che in rails chiamano associactioni
polimorfiche, solo
che per noi sono polimorfiche ovunque.
Sostanzialmente e` il sistema a eventi che notifica quando gli oggetti nel db
cambiano di stato. Perche` e` complesso? Perche` la relazione degli eventi
ha un emettitore e un recettore dell'evento. L'evento e` polimorfico (ce ne sono
di vari tipi), l'emettitore e il recettore non solo sono tipi
(tabelle) diverse ma pure
loro hanno in mezzo il polimorfismo.
More info: http://techspot.zzzeek.org/?p=13
Ora... questo tipo di cose e` piuttosto complesso ma ha il pregio di
semplificare
tantissimo il codice applicativo che sta sopra. A noi basta
semplicemente andare di:
ad_space.status = 'verify'
che nel db al momento del commit viene generato anche l'evento nella tabella
apposita.
A questo aggiungi la recente aggiunta del declarative layer:
http://www.sqlalchemy.org/docs/04/plugins.html#plugins_declarative
E dico che il 20% di sforzo vale anche per sqlalchemy. Se uno invece vuole usare
direttamente i mapper allora concordo, sono tosti e difficili e
probabilmente non valgono
la fatica di comprenderli bene.
IMHO poi.
Sostanzialmente penso che django dovrebbe mollare il proprio orm
perche` sqlalchemy
e` superiore in tutto, tra l'altro facendo cosi`, anche a livello
strategico, farebbero una genialata.
Ci sono molte semplici applicazioni che usano sqlalchemy e potrebbero
spostarsi su django
senza toccare il db.
--
Valentino Volonghi aka Dialtone
Now running MacOS X 10.5
Home Page: http://www.twisted.it
Maggiori informazioni sulla lista
Python