Re: [Python] Gestionale fatto in casa

2009-04-16 Thread Vitto
Cmq,
anche se non centra molto con python ma ormai la discussione si è spostata
su "gestionali"... ho visto in libreria un cofanetto a 59.90€ con
"Gestionale 2.0" e StarOffice nel prezzo.
Varrebbe la pena provarlo... IHMO.




Il giorno 15 aprile 2009 22.48, Enrico Franchi  ha
scritto:

>
> On Apr 15, 2009, at 10:11 PM, Alessandro wrote:
>
> > Ora, imho, a pelle preferisco la shell (il "buco nero"..) anche se il
> > web è più "portabile" ma entrambi, dal punto di vista dell'utonto,
> > sono
> > qualche ordine di grandezza meno fruibili e intuitivi rispetto a una
> > gui
> > fatta bene.
>
> Ma assolutamente no.
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



-- 
Vittorio Zuccalà
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Webapp per database in CGI

2009-04-16 Thread Pietro Battiston
Il giorno mer, 15/04/2009 alle 17.54 +0200, Manlio Perillo ha scritto: 
> Pietro Battiston ha scritto:
> > Salve a tutti,
> > devo sviluppare un'applicazione web che consista "semplicemente" nella
> > visualizzazione di dati da un database, nel suo aggiornamento e nella
> > produzione di report pdf.
> > 
> > So che se chiedessi un consiglio su che framework usare scatenerei un
> > flame, ma "per fortuna" ho un vincolo che restringe sensibilmente le
> > possiblità: l'applicazione deve essere ospitata su Aruba, per cui deve
> > lavorare in modalità CGI.
> > 
> 
> Django può essere fatto girare su CGI.
> 
> > Ora: so che questo non è il modo standard né raccomandato di fare web
> > app in python, 
> 
> Dove lo hai letto?


ehm... per esempio nella risposta di Marco (tra le righe)!

ma anche in qualche paginetta qua e là (ad esempio molte, come te,
consigliavano almeno WSGI)

> > quindi la mia soluzione di fallback è che semplicemente
> > mi scrivo tutto da zero; ho già fatto qualche esperimentino e sarebbe un
> > lavoro lunghetto ma assolutamente fattibile.
> > 
> 
> Ti consiglio almeno un framework WSGI minimale.

Mi sembrava di avere capito che il WSGI avesse bisogno comunque di
processi che girano continuamente, e che in genere gli hosting non te lo
permettono...

(ho fatto anche qualche prova con esito negativo, ma data la mia
inesperienza questo vuol dire poco)

Comunque l'ultimissimo dei miei problemi è l'efficienza (il database
potrà essere anche grossino, ma sicuramente l'applicazione non sarà
utilizzata intensivamente).

> 
> > Se però avete qualche libreria da consigliarmi (fondamentalmente un
> > layer comodo per lavorare su mask via html e/o http), sono tutt'occhi.
> > 
> 
> Che intendi con "lavorare su mask"?

Beh, ammetto che se le parole sono vaghe è perché lo sono ancora un po'
le idee nella mia mente. Però ad esempio, se il lavoro lo dovrò fare da
zero, dato il mio database, per rappresentare gli elementi di una
tabella in html mi farò una libreria in cui l'oggetto fondamentale è il
"campo", di cui ogni istanza è associata ad una particolare colonna di
una particolare tabella, ad una sua rappresentazione in html e ad una
modalità di aggiornamento via POST... e per la rappresentazione in html,
a sua volta, prevederò diverse possibilità (una stringa può essere ad
inserimento libero, oppure con un menu...). A quel punto una pagina in
html sarebbe semplicemente la composizione di una serie di campi.

Un minimo di astrazione del genere la dovrei fare comunque perché
scrivere un po' di html non mi scoccia, ma vorrei invece che il giorno
in cui aggiungessi una nuova colonna ad una tabella del database
l'aggiungerla anche all'interfaccia fosse automatico o quasi.

Per questo chiedevo se una libreria del genere esiste.

(il database sarà sqlite e forse - mi piace, ma non ho ancora deciso se
ne vale la pena in questo caso - via sqlalchemy)

Pietro

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Webapp per database in CGI

2009-04-16 Thread Marco Mariani
Pietro Battiston wrote:

>>> Ora: so che questo non è il modo standard né raccomandato di fare web
>>> app in python, 
>>>   
>> Dove lo hai letto?
>> 
>
> ehm... per esempio nella risposta di Marco (tra le righe)!
>   

Beh, a parte i problemi di prestazioni e di latenza, se hai pochi utenti 
e il framework lo supporta, si puo' fare.


> Un minimo di astrazione del genere la dovrei fare comunque perché
> scrivere un po' di html non mi scoccia, ma vorrei invece che il giorno
> in cui aggiungessi una nuova colonna ad una tabella del database
> l'aggiungerla anche all'interfaccia fosse automatico o quasi.
>   

Si', ma attento a non esagerare con le automagie. Altrimenti il 
programma si complica rapidamente.

> (il database sarà sqlite e forse - mi piace, ma non ho ancora deciso se
> ne vale la pena in questo caso - via sqlalchemy)
>   

Ne vale sempre la pena :)

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Webapp per database in CGI

2009-04-16 Thread Roberto De Ioris
On Wed, 2009-04-15 at 14:50 +0200, Marco Mariani wrote:
> Pietro Battiston wrote:
> 
> > So che se chiedessi un consiglio su che framework usare scatenerei un
> > flame, ma "per fortuna" ho un vincolo che restringe sensibilmente le
> > possiblità: l'applicazione deve essere ospitata su Aruba, per cui deve
> > lavorare in modalità CGI.
> >   
> 
> Allora, PHP.
> 


...che su Aruba (cosi' come buona parte degli hoster, noi compresi) gira
come CGI + suexec.

A livello di protocollo quindi sono la stessa cosa, quindi tanto vale
che scelga quello che gli piace di piu'.

L'unico consiglio che posso darti e' di usare il modulo python cgitb (al
posto del cgi ) altrimenti potresti avere difficolta' a debuggare gli
errori.

A livello di sviluppo non c'e' molta differenza con gli altri
motori/framework/protocolli (tolti i vari sistemi di routing e
templating) che bene o male utilizzano tutti il paradigma CGI (o meglio
le sue variabili)

-- 
Roberto De Ioris
http://unbit.it
JID: robe...@jabber.unbit.it

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Webapp per database in CGI

2009-04-16 Thread Manlio Perillo
Pietro Battiston ha scritto:
> [...]
> ma anche in qualche paginetta qua e là (ad esempio molte, come te,
> consigliavano almeno WSGI)
> 

WSGI, come CGI, è un protocollo tra il server HTTP e l'applicazione Python.

>>> quindi la mia soluzione di fallback è che semplicemente
>>> mi scrivo tutto da zero; ho già fatto qualche esperimentino e sarebbe un
>>> lavoro lunghetto ma assolutamente fattibile.
>>>
>> Ti consiglio almeno un framework WSGI minimale.
> 
> Mi sembrava di avere capito che il WSGI avesse bisogno comunque di
> processi che girano continuamente, e che in genere gli hosting non te lo
> permettono...
> 

No.
WSGI è molto più flessibile di CGI, e ci sono modi diversi di impiegarlo:

1) esiste un semplice wrapper per fornire l'API di WSGI sopra CGI.
   In questo modo ogni request WSGI è servita da un processo.

2) è possibile implementare WSGI direttamente nel server HTTP, e
   l'implementazione può scegliere di eseguire ciascuna request in un
   processo.

   Google App Engine fa qualcosa di simile a questo;
   ma non so darti maggiori dettagli, se viene al Pycon c'è un talk di
   Guido van Rossum a riguardo:
   http://www.pycon.it/conference/talks/google-app-engine-2

3) è possibile implementare WSGI direttamente nel server HTTP, in modo
   che l'applicazione Python venga eseguita all'interno del server
   stesso.

   Apache mod_wsgi e Nginx mod_wsgi fanno questo.

4) è possibile implementare WSGI in modo che lo scambio dati avvenga
   tramite un protocollo client server su TCP/IP.

   WSGI non definisce nessun protocollo di rete, ma puoi usare SCGI,
   FastCGI o altro (Unbit, ad esempio, ha sviluppato un suo protocollo).

   In questo caso l'applicazione Python viene eseguita da un
   "server WSGI", scritto in Python stesso.

   Come poi il server gestisca le richieste è un altro discorso.


> (ho fatto anche qualche prova con esito negativo, ma data la mia
> inesperienza questo vuol dire poco)
> 
> Comunque l'ultimissimo dei miei problemi è l'efficienza (il database
> potrà essere anche grossino, ma sicuramente l'applicazione non sarà
> utilizzata intensivamente).
> 

Ok, allora usa pure il wrapper WSGI sopra CGI.

Lo trovi nel modulo wsgiref.handlers, nella libreria standard;
oppure integrato nei vari framework WSGI, ad esempio
http://werkzeug.pocoo.org/documentation/deploying

>>> Se però avete qualche libreria da consigliarmi (fondamentalmente un
>>> layer comodo per lavorare su mask via html e/o http), sono tutt'occhi.
>>>
>> Che intendi con "lavorare su mask"?
> 
> Beh, ammetto che se le parole sono vaghe è perché lo sono ancora un po'
> le idee nella mia mente. Però ad esempio, se il lavoro lo dovrò fare da
> zero, dato il mio database, per rappresentare gli elementi di una
> tabella in html mi farò una libreria in cui l'oggetto fondamentale è il
> "campo", di cui ogni istanza è associata ad una particolare colonna di
> una particolare tabella, ad una sua rappresentazione in html e ad una
> modalità di aggiornamento via POST... e per la rappresentazione in html,
> a sua volta, prevederò diverse possibilità (una stringa può essere ad
> inserimento libero, oppure con un menu...). A quel punto una pagina in
> html sarebbe semplicemente la composizione di una serie di campi.
> 
> Un minimo di astrazione del genere la dovrei fare comunque perché
> scrivere un po' di html non mi scoccia, ma vorrei invece che il giorno
> in cui aggiungessi una nuova colonna ad una tabella del database
> l'aggiungerla anche all'interfaccia fosse automatico o quasi.
> 

Ci sono delle applicazioni WSGI che forniscono un API restful per
accedere ad un database.

Io ne ho una (ma sperimentale, ed incompleta):
http://hg.mperillo.ath.cx/wsgix/file/tip/wsgix/contrib/sqltables/

Django fornisce una interfaccia web automatica ad un database; e mi
sembra ci sia un altra applicazione che lo faccia e ora non mi viene in
mente.

> Per questo chiedevo se una libreria del genere esiste.
> 
> (il database sarà sqlite e forse - mi piace, ma non ho ancora deciso se
> ne vale la pena in questo caso - via sqlalchemy)
> 

Ti consiglio sqlalchemy, è quello che ho usato io.



Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Webapp per database in CGI

2009-04-16 Thread Giorgio Zoppi
Il 16 aprile 2009 10.07, Pietro Battiston  ha scritto:
> Il giorno mer, 15/04/2009 alle 17.54 +0200, Manlio Perillo ha scritto:
>> Pietro Battiston ha scritto:
>> > Salve a tutti,
>> > devo sviluppare un'applicazione web che consista "semplicemente" nella
>> > visualizzazione di dati da un database, nel suo aggiornamento e nella
>> > produzione di report pdf.
Ciao,
ma non e' che usare un semplice cgi, con i cheetaah template stile
http://www.cheetahtemplate.org/
ti possa aiutare? Chiedo.

-- 
Quiero ser el rayo de sol que cada día te despierta
para hacerte respirar y vivir en me.
"Favola -Moda".
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Python e ms access

2009-04-16 Thread giorgio
Ciao a tutti,


devo leggere e creare una tabella in un db esistente di  ms access.

Per leggere i dati:

 s = odbc.odbc('dbodbc')# mi collego al DSN
 cur = s.cursor()

cur.execute("select STORICO.COD_ANAG,STORICO.DAT_STOR,STORICO.COD_CAU1,\
  STORICO.THM_ORA_1,STORICO.COD_CAU2,\
  STORICO.THM_ORA_2,ANAG.DES_ANAG\
  from STORICO inner join ANAG on 
STORICO.COD_ANAG=ANAG.COD_ANAG\
  where STORICO.DAT_STOR >=  ? and STORICO.DAT_STOR <= ?\
  order by STORICO.COD_ANAG,STORICO.DAT_STOR",\
  (self.dtx_reg_ini,self.dtx_reg_fin,))
 rec = cur.fetchall()


recuperati i dati devo creare e popolare una tabella, sempre in ms access:



 #se esiste distrugge la tabella 
  try:   
 cur.execute("DROP TABLE stm")
  except:
 print "La tabella stm non esiste!"
 #crea tabelle stm
   cur.execute("CREATE TABLE stm (\
   id int(2) NOT NULL auto_increment,\
   cod char(10)  value '',\
   dattim char(8)  value '',\
   causa char(4) value '',\
   ore char(4) value ' ',\
   causaex char(4)  value '',\
   oreex char(4)  value '',\
   nome char(30)  value '',\
   PRIMARY KEY (id),\
   )")


quì cominciano i problemi:

1- non distrugge la tabella stm, infatti esegue l'istruzione except
2-lo script si arresta con il seguente errore:
   Traceback (most recent call last):
   File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton
cur.execute("CREATE TABLE stm (\
   dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di 
sintassi nell'istruzione 
   CREATE TABLE. in EXEC


Qualcuno conosce la sintassi giusta per i comandi DROP e CREATE per i driver 
ODBC per msaccess?


Grazie.



 giorgio   

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread simozack
Il 16/04/09, giorgio ha scritto:
> Ciao a tutti,
>
>
> devo leggere e creare una tabella in un db esistente di  ms access.
>
> Per leggere i dati:
>
>  s = odbc.odbc('dbodbc')# mi collego al DSN
>  cur = s.cursor()
>
> cur.execute("select STORICO.COD_ANAG,STORICO.DAT_STOR,STORICO.COD_CAU1,\
>  STORICO.THM_ORA_1,STORICO.COD_CAU2,\
>  STORICO.THM_ORA_2,ANAG.DES_ANAG\
>  from STORICO inner join ANAG on 
> STORICO.COD_ANAG=ANAG.COD_ANAG\
>  where STORICO.DAT_STOR >=  ? and STORICO.DAT_STOR <= ?\
>  order by STORICO.COD_ANAG,STORICO.DAT_STOR",\
>  (self.dtx_reg_ini,self.dtx_reg_fin,))
>  rec = cur.fetchall()
>
>
> recuperati i dati devo creare e popolare una tabella, sempre in ms access:
>
>
>
>  #se esiste distrugge la tabella
>  try:
> cur.execute("DROP TABLE stm")
>  except:
> print "La tabella stm non esiste!"
>  #crea tabelle stm
>   cur.execute("CREATE TABLE stm (\
>   id int(2) NOT NULL auto_increment,\
>   cod char(10)  value '',\
>   dattim char(8)  value '',\
>   causa char(4) value '',\
>   ore char(4) value ' ',\
>   causaex char(4)  value '',\
>   oreex char(4)  value '',\
>   nome char(30)  value '',\
>   PRIMARY KEY (id),\
>   )")
>
>
> quì cominciano i problemi:
>
> 1- non distrugge la tabella stm, infatti esegue l'istruzione except
> 2-lo script si arresta con il seguente errore:
>   Traceback (most recent call last):
>   File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton
>cur.execute("CREATE TABLE stm (\
>   dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore di 
> sintassi nell'istruzione
>   CREATE TABLE. in EXEC
>
>
> Qualcuno conosce la sintassi giusta per i comandi DROP e CREATE per i driver 
> ODBC per msaccess?

La sintassi è la stessa. Qui il problema sta in come è impostata la
stringa in Python, visto che la \ non la devi mettere (infatti
l'errore sta in quello, se guardi bene).

Prova a rompere le righe così:

cur.execute("CREATE TABLE stm ( "
  "id int(2) NOT NULL auto_increment, "
  "cod char(10)  value '', "
  "dattim char(8)  value '', "
  "causa char(4) value '', "
  "ore char(4) value ' ', "
  "causaex char(4)  value '', "
  "oreex char(4)  value '', "
  "nome char(30)  value '', "
  "PRIMARY KEY (id), "
  ")")

Oppure con i triplici ":

cur.execute("""CREATE TABLE stm (
  id int(2) NOT NULL auto_increment,
  cod char(10)  value '',
  dattim char(8)  value '',
  causa char(4) value '',
  ore char(4) value ' ',
  causaex char(4)  value '',
  oreex char(4)  value '',
  nome char(30)  value '',
  PRIMARY KEY (id),
  )""")

HTH,
Simone
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread Daniele Varrazzo
On Thu, 16 Apr 2009 15:18:40 +0200, giorgio  wrote:
>cur.execute("CREATE TABLE stm (\
>id int(2) NOT NULL auto_increment,\
>cod char(10)  value '',\

cosa sono questi value '' ? Non mi sembrano validi. forse DEFAULT? Non sono
neanche sicuro che in access una stringa vuota possa essere usata in un
campo, a meno che non la ammetta esplicitamente... ma non tocco access da
almeno 5 anni. In generale mi sembra una cattiva idea e userei dei NULL.

>dattim char(8)  value '',\
>causa char(4) value '',\
>ore char(4) value ' ',\
>causaex char(4)  value '',\
>oreex char(4)  value '',\
>nome char(30)  value '',\
>PRIMARY KEY (id),\

qui c'è una virgola di troppo.  ^^^

>)")

Poi non so se ci sono altri problemi.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread Daniele Varrazzo
On Thu, 16 Apr 2009 15:55:25 +0200, simozack  wrote:

> La sintassi è la stessa. Qui il problema sta in come è impostata la
> stringa in Python, visto che la \ non la devi mettere (infatti
> l'errore sta in quello, se guardi bene).

Non credo: in questo caso gli darebbe un errore Python, non ODBC.

Simone ha usato una sintassi lecita: escape dell'end-of-line

In [1]: print "ciao, \
   ...: mondo"
ciao, mondo

Non è molto amata perchè è facile sbagliare: se c'è uno spazio dopo il
backslash si ottiene un errore:

   qui c'è uno spazio
  v
In [2]: print "ciao, \ 
mondo"

   File "", line 1
 print "ciao, \
   ^
: EOL while scanning single-quoted
string

Ma appunto è un erroer Python, non ODBC.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread simozack
Il 16/04/09, Daniele Varrazzo ha scritto:

> Non credo: in questo caso gli darebbe un errore Python, non ODBC.

Traceback (most recent call last):
  File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in OnOkButton
   cur.execute("CREATE TABLE stm (\
  dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore
di sintassi nell'istruzione

Dalla terza riga dell'errore (copincollato qui sopra per comodità),
sembra che l'errore risieda nel fatto che venga passato come comando
anche il \, che invece non ne deve fare parte.

Ciao,
Simone
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread Daniele Varrazzo
On Thu, 16 Apr 2009 16:23:56 +0200, simozack  wrote:
> Il 16/04/09, Daniele Varrazzo ha scritto:
> 
>> Non credo: in questo caso gli darebbe un errore Python, non ODBC.
> 
> Traceback (most recent call last):
>   File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in
OnOkButton
>cur.execute("CREATE TABLE stm (\
>   dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore
> di sintassi nell'istruzione
> 
> Dalla terza riga dell'errore (copincollato qui sopra per comodità),
> sembra che l'errore risieda nel fatto che venga passato come comando
> anche il \, che invece non ne deve fare parte.

Questo è il traceback python generato perché l'eccezione sollevata dal
driver odbc non viene intercettata, ma non è detto sia la causa
dell'errore in sé: è solo la riga di codice che l'ha generata.

Puoi provare ad eseguire un print dell'espressione nella query: noterai che
gli a-capo vengono eliminati ma nessun backslash viene passato al print nè
all'odbc.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python e ms access

2009-04-16 Thread giorgio
Hello Daniele,

Thursday, April 16, 2009, 4:30:38 PM, you wrote:

DV> On Thu, 16 Apr 2009 16:23:56 +0200, simozack  wrote:
>> Il 16/04/09, Daniele Varrazzo ha scritto:

>>> Non credo: in questo caso gli darebbe un errore Python, non ODBC.

>> Traceback (most recent call last):
>>   File "C:\Python24\Lib\site-packages\WCronos.py", line 171, in
DV> OnOkButton
>>cur.execute("CREATE TABLE stm (\
>>   dbi.program-error: [Microsoft][Driver ODBC Microsoft Access] Errore
>> di sintassi nell'istruzione

>> Dalla terza riga dell'errore (copincollato qui sopra per comodità),
>> sembra che l'errore risieda nel fatto che venga passato come comando
>> anche il \, che invece non ne deve fare parte.

DV> Questo è il traceback python generato perché l'eccezione sollevata dal
DV> driver odbc non viene intercettata, ma non è detto sia la causa
DV> dell'errore in sé: è solo la riga di codice che l'ha generata.

DV> Puoi provare ad eseguire un print dell'espressione nella query: noterai che
DV> gli a-capo vengono eliminati ma nessun backslash viene passato al print nè
DV> all'odbc.

Infatti è la sintassi che uso normalmente con MySql...



-- 
Best regards,
 giorgiomailto:g.cl...@tiscali.it

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python