Re: [Python] API json
Il giorno 29/lug/07, alle ore 23:31, Picio ha scritto: Salve, vorrei costruire una API json per il mio db usando python. La mia idea sarebbe: 1 pagina web (client) che tramite ajax richiede dati ad un server 2 il server prende i dati da un db e risponde in json 3 uso il contenuto json per aggiornare dei div sulla pagina web Giusto? Potete darmi indicazioni suggerimenti su cosa devo usare? (simplejson o magari un intero framework tipo django?) Grazie. Daniele -- http://picio.gotdns.com ...Il mio blog su NSLU2 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python Se non hai una fretta particolare e se hai voglia di sperimentare potresti contattarmi. Abbiamo presentato a PyconUno il nostro framework Genropy che ha tutto quello che richiedi e anche di più. In particolare un adattatore SQL che può leggere un DB esistente per ricavarne la struttura o può leggere una struttura espressa in python o XML e generare le modifiche opportune sul db (creazione di tabelle, campi, indici,relazioni). L'adattatore è inoltre in grado di eseguire operazioni di lettura/scrittura sul database con API molto semplici. In particolare può eseguire query creando automaticamente le join e rendendo il risultato o in JSON o in XML. La licenza è LGPL. Ci lavoriamo full time in 4 persone e il prodotto è decisamente stabile. Come sempre succede la documentazione è ancora carente ma ci stiamo lavorando. Per il momento l'adattatore SQL può essere usato con PostgreSQL o con SQLite ma scrivere il layer di adattamento per mysql (se proprio ti vuoi del male) non è un gran lavoro. Un quick start lo trovi qui : http://trac.genropy.org/wiki/QuickStart per il momento non mettiamo un download pubblico perchè preferiamo conoscere chi è interessato per dargli assistenza ed avere un feedback. Se lo desideri provarlo fammelo sapere e ti farò avere un link per scaricarlo. Ciao G. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] rilancio python.it
Il 29/07/07, Manlio Perillo<[EMAIL PROTECTED]> ha scritto: [cut] Volevo ricordare a tutti, tra l'altro, che oltre a python.it abbiamo anche il dominio zonapython.it (anche questo da trasferire all'associazione, lo faccio quando volete). Un'altra idea potrebbe essere proprio di "dividere" e riorganizzare, mantenendo python.it per quanto riguarda i compiti istituzionali (doc & news officiali) e zonapython.it per organizzare la comunità Python italiana. Oppure si potrebbe cercare di far convergere le comunità di python-it.org e zonapython.it. -- Alan Franzoni <[EMAIL PROTECTED]> - GPG Key Fingerprint: 5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] socket - questa me la dovete proprio spiegare..
allanon ha scritto: Eccomi qua, con un altro quesito! siccome sono niubbo il codice lo provo prima nell'interprete ide (quello che si lancia scrivendo python da console :p) e allora scrivo questo codice qui #!/usr/bin/python import sys from socket import * import re Host = 'localhost' Port = 5038 s = socket(AF_INET, SOCK_STREAM) s.connect((Host, Port)) s.send('Action: Login\r\nUserName: fop\r\nSecret: didodidodee\r\n\r\n') s.send('Action: Command\r\nCommand: Show Channels\r\n\r\n') data = s.recv(2048) # riceve fino a 2K bytes rawstr = r"""\d(?=.active channels)""" d=re.findall(rawstr,str(data)) print "canali attivi "+str(d) e funziona senza dire pio! mi ritorna [...] [Protocollo basato su scambio di messaggi] Quanto invece lo stesso identico e medesimo codice frutto del copia e incolla piu' puro lo ficco dentro un file e lo eseguo.. # ./prova-asterisk.py canali attivi [] e la variabile data contiene soltanto Asterisk Call Manager/1.0 secondo voi, come e' possibile che lo stesso codice ha un comportamento differente?? PS sono arcisicuro che mi manca qualche dettaglio essensiale, daltra parte non potrebbe essere altrimenti, pero stavolta sono propro curioso di sapere cosa e' Il dettaglio essenziale che ti manca è sapere come funzionano i socket. Se leggi la documentazione del modulo socket, puoi notare un: """The maximum amount of data to be received at once is specified by bufsize""" Questo significa che, nel tuo caso otterrai *al massimo* 2048, ma nulla vieta di ottenere molto meno. Tutto dipende da quanto dati sono disponibili nel buffer interno dei socket. Per questo il tuo amico ti ha consigliato un timer, attendi finchè *presumi* il server ti abbia mandato tutto. E' chiaro che è una soluzione assolutamente sbagliata... Hai due soluzioni: 1) Leggere la risposta linea per linea. 2) Leggere tutta, ma proprio tutta, la risposta In entrambi i casi la soluzione più semplice è usare sock.makefile('rb', 0) Vedi ad esempio l'implementazione del modulo httplib. Per leggere una linea alla volta basta fare fp.readline(), per leggere tutta la risposta, basta un fp.read() Attenzione, che se usi fp.read(), stai assumendo che il server chiuda la connessione dopo aver spedito tutti i dati, altrimenti non hai modo di sapere quando devi smettere di leggere. Se leggi linea per linea, invece, magari puoi intercettare ed interpretare un eventuale header Content-Lenght, come succede in HTTP 1.1. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] rilancio python.it
Alan Franzoni ha scritto: Il 29/07/07, Manlio Perillo<[EMAIL PROTECTED]> ha scritto: [cut] Volevo ricordare a tutti, tra l'altro, che oltre a python.it abbiamo anche il dominio zonapython.it (anche questo da trasferire all'associazione, lo faccio quando volete). Vero, me ne ero dimenticato. Un'altra idea potrebbe essere proprio di "dividere" e riorganizzare, mantenendo python.it per quanto riguarda i compiti istituzionali (doc & news officiali) e zonapython.it per organizzare la comunità Python italiana. Oppure si potrebbe cercare di far convergere le comunità di python-it.org e zonapython.it. E' una cosa di cui ho discusso in chat con Antonio Fittipaldi. Ad esempio un "ponte" (un redirect, o via proxy HTTP) tra http://www.python.it/comunity e http://python-it.org Può essere una soluzione per il piccolo/medio termine, ma ha comunque i suoi problemi. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Picio ha scritto: Salve, vorrei costruire una API json per il mio db usando python. La mia idea sarebbe: 1 pagina web (client) che tramite ajax richiede dati ad un server 2 il server prende i dati da un db e risponde in json 3 uso il contenuto json per aggiornare dei div sulla pagina web Giusto? Potete darmi indicazioni suggerimenti su cosa devo usare? (simplejson o magari un intero framework tipo django?) Non ti serve un framework, probabilmente ti basta anche il semplice mod_python, o anche flup (se vuoi usare fastcgi/scgi). Io ti consiglio comunque di usare l'API WSGI (http://www.python.org/peps/pep-0333.html) flup la supporta, e per Apache, mod_python sta per essere sostituito da mod_wsgi (magari se devi usare Apache, trovi qualche adattatore per mod_python) Tutto quello che devi fare è trovare come codificare nell'URI le informazioni che ti servono per accedere al database. Presumo che nel tuo database tu abbia già i dati serializzati in JSON. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] socket - questa me la dovete proprio spiegare..
allanon ha scritto: [...] ghghghg, grazie ad un coder php abbiamo risolto!! (lui dice che nel reference del php c'e' scritto!!!) Se una cosa del genere è scritta nel reference di php, mi vengono i brividi... > [...] Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] rilancio python.it
> E' una cosa di cui ho discusso in chat con Antonio Fittipaldi. > Ad esempio un "ponte" (un redirect, o via proxy HTTP) tra > http://www.python.it/comunity e http://python-it.org > > > Può essere una soluzione per il piccolo/medio termine, ma ha comunque i > suoi problemi. Sicuramente ogni soluzione ha i suoi problemi; cerchiamo il "male minore". Antonio mi sembra abbastanza attivo e mi pare avere voglia di mettere mano alle news. Io ultimamente mi trovo quasi sempre, durante il giorno, sui canali python.it sia su freenode che su azzura, chi vuole mi può anche contattare in chat con jabber, il mio id è [EMAIL PROTECTED] . Ora do anche un'occhiata allo sphinx ufficiale di python.org, vediamo se si riesce ad aggiornare. Il problema rimane comunque sempre l'accesso; IMHO bisogna passare al più presto ad un server "nostro" o fare un "poll for servers" fra i vari utenti e aziende di it.comp.lang.python , la lista di python.it e pycon-organization . -- Alan Franzoni <[EMAIL PROTECTED]> - GPG Key Fingerprint: 5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] socket - questa me la dovete proprio spiegare..
Il 30/07/07, Manlio Perillo<[EMAIL PROTECTED]> ha scritto: > Se una cosa del genere è scritta nel reference di php, mi vengono i > brividi... Figuriamoci a Nicola! -- Alan Franzoni <[EMAIL PROTECTED]> - GPG Key Fingerprint: 5C77 9DC3 BD5B 3A28 E7BC 921A 0255 42AA FE06 8F3E ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] rilancio python.it
Alan Franzoni ha scritto: E' una cosa di cui ho discusso in chat con Antonio Fittipaldi. Ad esempio un "ponte" (un redirect, o via proxy HTTP) tra http://www.python.it/comunity e http://python-it.org Può essere una soluzione per il piccolo/medio termine, ma ha comunque i suoi problemi. Sicuramente ogni soluzione ha i suoi problemi; cerchiamo il "male minore". Antonio mi sembra abbastanza attivo e mi pare avere voglia di mettere mano alle news. Si, Antonio è molto attivo. Io ultimamente mi trovo quasi sempre, durante il giorno, sui canali python.it sia su freenode che su azzura, chi vuole mi può anche contattare in chat con jabber, il mio id è [EMAIL PROTECTED] . Anche al momento sono in chat, e cercherò, d'ora in poi, di essere sempre presente. Ora do anche un'occhiata allo sphinx ufficiale di python.org, vediamo se si riesce ad aggiornare. Il problema rimane comunque sempre l'accesso; IMHO bisogna passare al più presto ad un server "nostro" o fare un "poll for servers" fra i vari utenti e aziende di it.comp.lang.python , la lista di python.it e pycon-organization . In realtà il metodo attuale è comodo perchè va bene anche sul server attuale. Per questo non ci sono problemi. Comunque ho fatto presente all'associazione Python Italia della necessità di decidere a riguardo. Le alternativi, IMHO, sono tra prendere un server condiviso su unbit.it o uno slice su slicehost.com. Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Re: socket - questa me la dovete proprio spiegare..
> Manlio Perillo ha scritto: >> Se una cosa del genere è scritta nel reference di php, mi vengono i >> brividi... Alan Franzoni wrote: > Figuriamoci a Nicola! Apprezzate almeno i miei sforzi, quelle rare volte che riesco a stare zitto! Stamattina, tra PHP e MySQL, è veramente dura... -- Nicola Larosa - http://www.tekNico.net/ I have a philosophical/economical/Darwinian reason for preferring open source technology development to proprietary models: decentralized, emergent development models work better than central planning for broadly applicable technologies like Flash. -- Anne Zelenka, January 2007 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] socket - questa me la dovete proprio spiegare..
Manlio Perillo ha scritto: [...] Hai due soluzioni: 1) Leggere la risposta linea per linea. 2) Leggere tutta, ma proprio tutta, la risposta In entrambi i casi la soluzione più semplice è usare sock.makefile('rb', 0) Vedi ad esempio l'implementazione del modulo httplib. Per leggere una linea alla volta basta fare fp.readline(), per leggere tutta la risposta, basta un fp.read() Aggiungo una nota magari importante. Con fp.readline resti in attesa finchè nei dati che ti spedisce il server non è presente un carattere di fine riga, o finchè il server non chiude la connessione. > [...] Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Manlio: Nel db i dati NON sono gia in Json, ma ci devono diventare. Volevo che la serializzazione fosse compito dell'API (sto cominciando a non essere più sicuro di cosa sia una API ;) ). Non ho molto controllo ne sul db ne sul webserver nel senso che dovrò adattarmi ai requisiti del committente. Ad ogni modo mi informo e se posso mettere su mod_wsgi, flup etc prendo questa strada, anche se non è che abbia un'idea chiara di come passare le richieste via URI. Il vantaggio di django è che il dispatcher fa già tutto. Vado a studiarmi l'API WSGI grazie. Giovanni: ti ringrazio molto, avevo già visto l'intervista che hai (se eri tu) sostenuto al PyCon, su youtube (credo) e mi piaceva il discorso delle bags. Non ho bisogno di interattività con il db se non minima, per semplici richieste su due tabelle, senza necessità di join. Ho buoni motivi per pensare che il sistema che sto mettendo su non si evolverà in qualcosa di più complesso di così. Nonostante possa non essere la strada definitiva mi piacerebbe molto provare genropy ed esservi utile in qualche modo. In sostanza devo fare una query da una pagina web, su db, per avere un serie di dati che contengono una parola in un campo descr., plottare un grafico con i risultati sulla pagina web, sceglierne uno (onclick) e fare un'altra query su un'altra tabella per avere i dati specifici relativi a ciò che ho scelto, tutto via ajax. Tutte le risposte dal server devono arrivare serializzate in json così da essere riutilizzate nella funzione javascript che genera dinamicamente il grafico. D Il 30/07/07, Manlio Perillo<[EMAIL PROTECTED]> ha scritto: > Picio ha scritto: > > Salve, vorrei costruire una API json per il mio db usando python. > > La mia idea sarebbe: > > > > 1 pagina web (client) che tramite ajax richiede dati ad un server > > 2 il server prende i dati da un db e risponde in json > > 3 uso il contenuto json per aggiornare dei div sulla pagina web > > > > Giusto? > > Potete darmi indicazioni suggerimenti su cosa devo usare? > > (simplejson o magari un intero framework tipo django?) > > > Non ti serve un framework, probabilmente ti basta anche il semplice > mod_python, o anche flup (se vuoi usare fastcgi/scgi). > > Io ti consiglio comunque di usare l'API WSGI > (http://www.python.org/peps/pep-0333.html) > > flup la supporta, e per Apache, mod_python sta per essere sostituito da > mod_wsgi (magari se devi usare Apache, trovi qualche adattatore per > mod_python) > > > Tutto quello che devi fare è trovare come codificare nell'URI le > informazioni che ti servono per accedere al database. > > Presumo che nel tuo database tu abbia già i dati serializzati in JSON. > > > Saluti Manlio Perillo > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- http://picio.gotdns.com ...Il mio blog su NSLU2 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Picio ha scritto: Manlio: Nel db i dati NON sono gia in Json, ma ci devono diventare. Si, scusa. Volevo che la serializzazione fosse compito dell'API (sto cominciando a non essere più sicuro di cosa sia una API ;) ). Si, ma quello che ti ho detto resta ancora valido. Non ho molto controllo ne sul db ne sul webserver nel senso che dovrò adattarmi ai requisiti del committente. Ad ogni modo mi informo e se posso mettere su mod_wsgi, flup etc prendo questa strada, anche se non è che abbia un'idea chiara di come passare le richieste via URI. Questo dipende da quello che deve fare la tua applicazione. Ad esempio se devi avere accesso alla lista ordini: http://tuoserver.com/orders/ Nell'applicazione associ un handler alla richiesta /orders/ in modo che faccia una query al database: SELECT * FROM orders; e serializzi il risultato di ritorno in JSON, ad esempio usando una lista di dizionari [{'order_number': 45412, 'client': 'manlio'}, ...] Non ti servono grandi strumenti. Quello che ti occorre è un metodo semplice per associare una request uri ad un handler (ed il metodo di Django è molto semplice). Vedi ad esempio: http://svn.python.it/code/pythonisti/trunk/pythonisti/apps/geo/views.py > [...] Saluti Manlio Perillo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Allora vado avanti con Django. Ho trovato anche questo (non troppo chiaro): http://blog.michaeltrier.com/2007/7/30/json-generic-serializer Il 30/07/07, Manlio Perillo<[EMAIL PROTECTED]> ha scritto: > Picio ha scritto: > > Manlio: > > Nel db i dati NON sono gia in Json, ma ci devono diventare. > > Si, scusa. > > > Volevo che > > la serializzazione fosse compito dell'API (sto cominciando a non > > essere più sicuro di cosa sia una API ;) ). > > Si, ma quello che ti ho detto resta ancora valido. > > > Non ho molto controllo ne sul db ne sul webserver nel senso che dovrò > > adattarmi ai requisiti del committente. Ad ogni modo mi informo e se > > posso mettere su mod_wsgi, flup etc prendo questa strada, anche se non > > è che abbia un'idea chiara di come passare le richieste via URI. > > Questo dipende da quello che deve fare la tua applicazione. > Ad esempio se devi avere accesso alla lista ordini: > http://tuoserver.com/orders/ > > > Nell'applicazione associ un handler alla richiesta /orders/ in modo che > faccia una query al database: > SELECT * FROM orders; > > e serializzi il risultato di ritorno in JSON, ad esempio usando una > lista di dizionari > [{'order_number': 45412, 'client': 'manlio'}, ...] > > > Non ti servono grandi strumenti. > Quello che ti occorre è un metodo semplice per associare una request uri > ad un handler (ed il metodo di Django è molto semplice). > > Vedi ad esempio: > http://svn.python.it/code/pythonisti/trunk/pythonisti/apps/geo/views.py > > > [...] > > > Saluti Manlio Perillo > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- http://picio.gotdns.com ...Il mio blog su NSLU2 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] operazioni bitwise
On 7/29/07, karpov74 <[EMAIL PROTECTED]> wrote: > ...sono alle prese con la programmazione di un chess engine in python. > > premesso che sono un principiante, ho un problema. > > voglio rappresentare la scacchiera tramite le bitboard, e sto > utilizzando gli operatori: > > and & (bitwise and) > or | (bitwise or) > xor ^ (bitwise xor) > not ~ (bitwise not) > ishft(a, 1) a << 1 (left shift) > ishft(a,-1) a >> 1 (right shift) > > facendo delle prove ottengo questi risultati con python: > > 0110 & 1010 = 100 > > 0110 | 1010 = 111010 > > 0110 ^ 1010 = 1110111010 > > 0010 << 10 > > in realtà io mi aspetterei che: > > > 0110 & 1010 = 0010 > > 0110 | 1010 = 1110 > > 0110 ^ 1010 = 1100 > > 0010 << 1000 > > dove sbaglio?? Candeggio? ;o) Non ho un python sottomano per verificare, ma suppongo che tu stia effettuando le tue operazioni su costanti ottali (quelle che cominciano con 0) e decimali, e non - come probabilmente ti attendi - in binario. Negli attuali python non esiste "zucchero sintattico" per le costanti binarie, puoi usare int("0110", 2). HTH, HAND (c) -- Carlo C8E Miron Binary Numbers Solution Architect ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] operazioni bitwise
> Negli attuali python non esiste "zucchero sintattico" per le costanti > binarie, puoi usare int("0110", 2). Per fortuna che quello zucchero sintattico in Py3k ci sarà :-D -- Lawrence, oluyede.org - neropercaso.it "It is difficult to get a man to understand something when his salary depends on not understanding it" - Upton Sinclair ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
On 7/30/07, Picio <[EMAIL PROTECTED]> wrote: [...] > Giovanni: > ti ringrazio molto, avevo già visto l'intervista che hai (se eri tu) > sostenuto al PyCon, su youtube (credo) ??? Non ne sapevo nulla... Hai l'URL sottomano? (c) -- Carlo C8E Miron Pycon On Youtube Solution Architect ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Il giorno 30/lug/07, alle ore 15:09, Carlo C8E Miron ha scritto: ??? Non ne sapevo nulla... Hai l'URL sottomano? In realtà è un'intervista di Maurizio Pellizzone a mio figlio Saverio. http://maurizio.mavida.com/2007/06/21/pycon-uno-genropy/ Cerca di spiegare quello che stiamo facendo e devo confessarvi che l'orgoglio di padre è notevole :D A proposito di video mi piacerebbe avere notizie di quelli girati. Se ne sa più nulla ? Ciao G. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Io avevo visto proprio quello menzionato. Non sapevo che ci fossero intere famiglie di Pythonisti! Questo si che mi piace. Il 30/07/07, Giovanni Porcari<[EMAIL PROTECTED]> ha scritto: > > Il giorno 30/lug/07, alle ore 15:09, Carlo C8E Miron ha scritto: > > > ??? Non ne sapevo nulla... > > Hai l'URL sottomano? > > In realtà è un'intervista di Maurizio Pellizzone a mio figlio Saverio. > > http://maurizio.mavida.com/2007/06/21/pycon-uno-genropy/ > > Cerca di spiegare quello che stiamo facendo e devo confessarvi > che l'orgoglio di padre è notevole :D > > A proposito di video mi piacerebbe avere notizie di quelli girati. > Se ne sa più nulla ? > > Ciao > G. > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- http://picio.gotdns.com ...Il mio blog su NSLU2 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] API json
Il giorno 30/lug/07, alle ore 23:39, Picio ha scritto: Io avevo visto proprio quello menzionato. Non sapevo che ci fossero intere famiglie di Pythonisti! Questo si che mi piace. Ti confesso che i figli pythonisti sono 2 :-) Saverio, che hai visto nel video, e Francesco che si è laureato in ingegneria informatica 4 giorni fa. Genropy è quindi il risultato di un lavoro di famiglia :P G___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python