[Python] ANN: Disponibile Sandbox Genropy

Giovanni Porcari giovanni.porcari a softwell.it
Ven 4 Lug 2014 13:06:33 CEST


> Il giorno 04/lug/2014, alle ore 11:55, Balan Victor <balan.victor0 a gmail.com> ha scritto:
> 
> Non ho trovato molta documentazione a riguardo e ho alcuni dubbi:
> come mai avete creato un altro orm, o quasi, invece di usare sqlalchemy o qualcosa già presente in giro?
> non sono riuscito a trovare i browser supportati, quali sono?
> su che web server si appoggia?
> 


La documentazione è per ora limitata ma stiamo cercando di provvedere. Per ora ci sono una serie di 'lezioni'
che coprono la gestione della GUI e la logica lato client. Prossimamente ci saranno le lezioni sulla programmazione
lato server e sul sql.

Genropy NON usa un ORM. Abbiamo invece una nostro modo di interagire col database che a nostro avviso
è più efficace di un ORM classico.

Di un ORM abbiamo la possibilità di definire le tabelle, le colonne e le relazioni e di aggiornare immediatamente
la struttura del database. Invece quello in cui non crediamo è di creare degli oggetti python e modificarli e poi 
lasciare all'orm il compito di aggiornare il db.
Dopo molte prove con sqlalchemy lo abbiamo abbandonato perchè sostanzialmente era troppo lento.
Se una query ti rende un numero di record non modesto il problema si sente.
Quindi il risultato di una query con genropy è comunque una lista di named tuple e questo è molto più
veloce.
Per quello che riguarda le query noi usiamo il concetto di path relazionale. Ovvero se parlo ad esempio 
della tabella dei clienti e nel client c'è un campo che si chiama comune_id che punta ad una tabella
di comuni e un campo provincia che punta alla tabella province, nella mia query potrò scrivere :

clienti = db.table('cliente').query(columns='$nome,$indirizzo, a comune_id.nome, a provincia.sigla, @provincia. a regione.nome').fetch()

Questo è quello che serve e il nostro adapter crea le join necessarie e rende una lista di named tuple 
con nome, cognome, nome del comune, sigla provincia e nome della regione.

Capisci che è molto facile fare delle query e il vantaggio è quello della velocità.

Gli adapter disponibili sono :

sqlite
postgressql
Microsoft Sql
Mysql
Oracle

Per quello che riguarda i browser andiamo bene con Chrome, Safari, Firefox e molto meno bene
con IE. Anche se mi dicono che con IE10 non ci sono problemi.

Genropy parla wsgi e quindi in sviluppo usiamo paste mentre in produzione usaiamo apache e mod_wsgi.

In questo momento stiamo mettendo il supporto per uwsgi che è davvero un prodotto spettacolare.


Grazie per l'interessamento

G


Maggiori informazioni sulla lista Python