News

Piccolo contributo per rinnovo abbonamento hosting: http://www.python-it.org/forum/index.php?topic=10331.0

Topic: paginazione bottle  (Letto 1110 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
paginazione bottle
« il: Agosto 30, 2015, 20:39 »
salve, sto provando ad fare una paginazione tramite un tutorial di un'altro web framework (flask),
per adesso la classe non da problemi.. ma ottengo l'errore qui:
Bottle v0.13-dev server starting up (using WSGIRefServer())...
Listening on http://192.168.0.2:8080/
Hit Ctrl-C to quit.

Traceback (most recent call last):
  File "D:Pythonlibottle.py", line 923, in _handle
    return route.call(**args)
  File "D:Pythonlibottle.py", line 1845, in wrapper
    rv = callback(*a, **ka)
  File "D:Python
ubrica_online.py", line 14, in main
    pagination = Pagination("page", PER_PAGE, 2)
TypeError: 'module' object is not callable
192.168.0.2 - - [30/Aug/2015 20:36:24] "GET / HTTP/1.1" 500 749


quando provo ad eseguire il server..

il codice dove sto prendendo spunto è questo:
http://flask.pocoo.org/snippets/44/

e il mio è cosi:
 @route('/')
    def main():
        conn = sqlite3.connect(DB)
        c = conn.cursor()
        c.execute("SELECT * FROM rubrica ORDER by id DESC")
        result = c.fetchall()  
        c.close()
        PER_PAGE = 2
        pagination = Pagination("page", PER_PAGE, 2)
        output = template('rubrica_online_tpl/index.tpl', pagination=pagination)
        return output



non riesco ad capire il page e total-count non so che tipo sono..

avete idea?

grazie mille.


EDIT: problema 1 del parametro page lo capita che sarebbe:
@route('/')
    @route('/', defaults={'page': 1})
    @route('/page/<int:page>')
    def main(page):



grazie.
« Ultima modifica: Agosto 30, 2015, 20:44 da Missile »

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3102
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: paginazione bottle
« Risposta #1 il: Agosto 31, 2015, 01:12 »
Ma passare a Flask?

salve, sto provando ad fare una paginazione tramite un tutorial di un'altro web framework (flask),
per adesso la classe non da problemi.. ma ottengo l'errore qui:

Traceback (most recent call last):
  File "D:Pythonlibottle.py", line 923, in _handle
    return route.call(**args)
  File "D:Pythonlibottle.py", line 1845, in wrapper
    rv = callback(*a, **ka)
  File "D:Python
ubrica_online.py", line 14, in main
    pagination = Pagination("page", PER_PAGE, 2)
TypeError: 'module' object is not callable


Probabilmente hai un modulo Pagination con dentro una classe Pagination e delle due:
  • o stai importando in modo errato il modulo;
  • o stai chiamando in modo errato la classe.
« Ultima modifica: Agosto 31, 2015, 07:49 da Giornale di Sistema »

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1601
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: paginazione bottle
« Risposta #2 il: Agosto 31, 2015, 01:48 »
Io di questo post non ho capito niente

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re: paginazione bottle
« Risposta #3 il: Agosto 31, 2015, 10:49 »
ciao, sto quasi facendo .. ma non riesco ad capire perché mi dice l'errore che mi riporta la console..che non riesco ad fare copia/incolla con la console di windows.


ti metto il codice.
EDIT  : rimosso perché mi leggo flask.

le classi stanno nella cartella classs c'è già bottle.py

basta che lanci rubrica.py  e per inserire basta che fai http://127.0.0.1/new  e metti il nome cognome e il numero.
questo è solo una bozza.

scusa . ma mi piace questo web framework.

ora vedo anche flask poi ti faccio sapere, tanto risolvo questo problema.

grazie mille.
« Ultima modifica: Agosto 31, 2015, 11:29 da Missile »

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re: paginazione bottle
« Risposta #4 il: Agosto 31, 2015, 11:00 »
ecco l'errore:

Traceback (most recent call last):
  File "D:Pythonubricaclasssottle.py", line 923, in _handle
    return route.call(**args)
  File "D:Pythonubricaclasssottle.py", line 1845, in wrapper
    rv = callback(*a, **ka)
TypeError: main() missing 1 required positional argument: 'page'
127.0.0.1 - - [31/Aug/2015 10:59:51] "GET / HTTP/1.1" 500 747
127.0.0.1 - - [31/Aug/2015 10:59:51] "GET /favicon.ico HTTP/1.1" 404 748

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1601
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: paginazione bottle
« Risposta #5 il: Agosto 31, 2015, 11:16 »
Ma passare a Flask?

Quotone. Più stabile, più supportato, e poi, parliamoci chiaro, one file? Mah.

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re: paginazione bottle
« Risposta #6 il: Agosto 31, 2015, 11:29 »
Ma passare a Flask?

Quotone. Più stabile, più supportato, e poi, parliamoci chiaro, one file? Mah.

ok , mi avete convinto.. ora leggo la doc e poi faccio delle prove con flask.
grazie ancora.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3102
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: paginazione bottle
« Risposta #7 il: Agosto 31, 2015, 11:35 »
basta che lanci rubrica.py  e per inserire basta che fai http://127.0.0.1/new  e metti il nome cognome e il numero.

Come no... ti sei scordato di configurare i package (niente file __init__.py), ti sei scordato di indicare la porta (http://127.0.0.1:8080/new).

Poi una pagina web che dire scarna è poco (non si capisce dove inserire cosa, ma due stringhe che dicono cosa mettere nella prima riga e cosa nella seconda?)
e dulcis in fundo, il messaggio d'errore è simile ma non lo stesso:
TypeError: main() takes exactly 1 argument (0 given)

Guardavo la classe Main di rubrica.py:
class Main():
    @route('/')
    @route('/page/<page:int>', method='GET')
    def main(page):
        conn = sqlite3.connect(DB)
        c = conn.cursor()
        c.execute("SELECT * FROM rubrica ORDER by id DESC")
        result = c.fetchall()  
        c.close()
        PER_PAGE = 2
        pagination = Pagination(page, PER_PAGE, 2)
        output = template('tpl/index.tpl', pagination=pagination)
        return output

page chi dovrebbe passarglielo?
« Ultima modifica: Agosto 31, 2015, 11:37 da Giornale di Sistema »

Offline Python

  • python sapiens sapiens
  • ******
  • Post: 2038
  • Punti reputazione: 2
  • Radon - Cyclomatic Complexity of you Python code
    • Mostra profilo
    • Radon - Cyclomatic Complexity of you Python code
Re: paginazione bottle
« Risposta #8 il: Agosto 31, 2015, 11:41 »
Comunque quella classe non ha tanto senso. L'istanza self dove sarebbe? Per raggruppare le funzioni bastano i moduli.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3102
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: paginazione bottle
« Risposta #9 il: Agosto 31, 2015, 11:41 »
Ma passare a Flask?

Quotone. Più stabile, più supportato

E più documentazione, tutorial, libri... guarda caso l'esempio che cercava era per Flask.

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re: paginazione bottle
« Risposta #10 il: Agosto 31, 2015, 11:55 »
è dj ango va bene anche questo? ho visto che ci sono cose anche in italiano.?
.. tanto li sto provando tutti e vedo qual'è che mi torna meglio.

Online RicPol

  • python sapiens sapiens
  • ******
  • Post: 2567
  • Punti reputazione: 9
    • Mostra profilo
Re: paginazione bottle
« Risposta #11 il: Agosto 31, 2015, 12:06 »
guarda, puoi usare django, puoi usare flask e puoi usare bottle, vanno benissimo tutti quanti. Ma se non hai le minime basi per usare le classi e le funzioni, e il resto, non funzionerà. Finché ti limiti a ricopiare i tutorial fino all'ultima virgola tutto bene. Ma appena appena provi a cambiare strada, sarà sempre CRASH e non capirai mai perché accade.

Offline Missile

  • python neanderthalensis
  • ****
  • Post: 299
  • Punti reputazione: 0
    • Mostra profilo
Re: paginazione bottle
« Risposta #12 il: Agosto 31, 2015, 12:34 »
ok @Ricpol  hai ragione.. se imparo tutto python ed dopo mi oriento su django va bene il procedimento che sto usando?

nell'altra area caffè ho postato questa playlist di università di roma https://www.youtube.com/playlist?list=PLAQopGWlIcyaYO89pmFViY4z_y8lj2IQA

me la seguo tutta e poi mi studio django..

ti ringrazio molto di nuovo.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3102
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: paginazione bottle
« Risposta #13 il: Agosto 31, 2015, 12:45 »
guarda, puoi usare django, puoi usare flask e puoi usare bottle, vanno benissimo tutti quanti. Ma se non hai le minime basi per usare le classi e le funzioni, e il resto, non funzionerà. Finché ti limiti a ricopiare i tutorial fino all'ultima virgola tutto bene. Ma appena appena provi a cambiare strada, sarà sempre CRASH e non capirai mai perché accade.

Quoto e aggiungo: Django è un pezzo di software bello e grosso che potrebbe risultare meno facile da digerire, Flask è più agevole da ingurgitare a piccoli bocconi.
Vale la pena provarli comunque entrambi e vedere quale si digerisce meglio.

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 321
  • Punti reputazione: 1
    • Mostra profilo
Re: paginazione bottle
« Risposta #14 il: Agosto 31, 2015, 12:49 »
deve esserci un errore in matrix...