Home > flask, python > Flask (tricks): download dati

Flask (tricks): download dati

Per poter aver disponibile un dato al download, utilizziamo

make_response

Per prima cosa creiamo una view chiamata download

from flask import flash, request, make_response

#.....

@main.route('/download/<id>')
def download(id):
    team = Team.query.get(id)
    players = team.players.all()
    data = """Team: %s\n""" % team.name
    for player in players:
        data += "\nplayer: %s - [%s]" % (player.name, player.value)
    response = make_response(data)
    response.headers["Content-Disposition"] = "attachment; filename=lineup.log"
    return response

nella template aggiungiamo un link (o un pulsante nel form) che richiami
la view corrispondente (download):

<a href="{{ url_for('main.download', id=team.id) }}">Download team lineup</a>

quando si clicchera’ sul link (o pulsante) si aprira’ il menu dove sara’ possibile
salvare il file, salvarlo con nome, ecc.

articolo successivo:

articoli precedenti:
Flask (parte 1): virtualenv
Flask (parte 2): struttura progetto complesso
Flask (parte 3): database
Flask (parte 4): views e templates
Flask (parte 5): password security
Flask (parte 6): authentication
Flask (parte 7): mail
Flask (parte 8): registrare un nuovo user

link utili:
“Flask Web Development” di Miguel Grinberg, fondamentale per calarsi nel mondo di Flask.
Altri link fondamentali:
Flask sito ufficiale
il blog dell’autore (Flask mega tutorial)

Categorie:flask, python Tag:,
  1. Non c'è ancora nessun commento.
  1. maggio 12, 2016 alle 12:37 pm

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: