PDA

Visualizza la versione completa : Applicazione framework FLASK


Cho Hakkai
17-07-2017, 02:00
Salve, ho un progettino da consegnare per l'università, con scadenza a brevissimo e non molto tempo di sbatterci la testa.

Devo realizzare un'applicazione Flask, basta su Jinja, di due pagine:
Pagina 1: Una lista di 3 elementi, con accanto il numero di voti ricevuti, ed un link per pagina 2.
Pagina 2: Un form che mi permetta di votare uno dei 3 elementi, a voto inviato mi rimanda a pagina 1
Una volta raggiunto un valore X di voti, la votazione si chiude non è più possibile andare a pagina 2.

Per farvi capire, questo è quanto ho scritto con python per eseguire il tutto su promt. Non è il massimo ma comunque funziona:


lst = [0, 0, 0]
voto = max(lst)


while voto<10:
print 'foto 1'
print 'foto 2'
print 'foto 3'


vt = int(input('Inserisci il numero della foto per votarla: '))


lst[vt - 1] += 1
voto = max(lst)

voti = max(lst)
song = lst.index(voti) + 1
print 'Vince la foto', song, 'con', voti, 'voti'


Ho scritto per ora i template, perferfettamente funzionanti, non so bene però come creare le funzioni che eseguino il programma python. Non ho mai usato jinja, e non credo avrò tempo nei prossimi giorni per approfindire :(

clasku
17-07-2017, 12:15
mi sa che sei un po' sulla strada sbagliata
Flask è un framework web con le sue regole di implementazione (niente di complesso, sia chiaro), devi creare delle regole di routing in modo che le richieste web siano indirizzate alle corrette funzioni e restituiscano la pagina al browser

guarda il sito di Flask, ci sono dei tutorial per iniziare e dovresti anche trovare delle guide per implementare i template in Jinja2

Cho Hakkai
17-07-2017, 14:04
Ciao, grazie della risposta.

So bene che quel che codice non posso "implementarlo" pari pari nel sito in flask, l'ho messo giusto per farvi capire cosa dovrebbe fare la mia applicazione.
Ho già guardato il sito di Flask e ho capito come usare i template, infatti ho scritto la mia applicazione con un layot e le due pagine che mi servono. Il tutto richiamato dalle route.
La parte dove ho più difficoltà è appunto realizzare un form, che a seconda del valore selezionato ed inviato in Post, aggiorni i valori di una lista e li riporti in una classifica (in un altra pagina). Quello che fa il codice python che ho postato prima, in sostanza.

clasku
17-07-2017, 16:32
il form lo fai con il template, nella route che risponde all'action del form dichiari che ti aspetti dei valori via POST
nell funzione chiamata dalla route, fai le tue azioni di incremento del voto per elemento e le salvi da qualche parte (può andare bene anche pickle per fare una cosa veloce, ci puoi collegare SQLite, salvare su un JSON, collegarci un altro DB, ecc)
poi quando torni nella home mostri gli ultimi dati salvati (implementa anche una funzione di reset, così non impazzisci per testare più volte)

Cho Hakkai
17-07-2017, 17:06
Provo, ti faccio sapere cosa viene fuori... grazie per ora

Loading