Python: forzare il download dei file in Flask

Python: forzare il download dei file in Flask

Flask è un micro-framework estremamente popolare per lo sviluppo di applicazioni web in Python, apprezzato per la sua semplicità, flessibilità e facilità di utilizzo. Una funzionalità comune che gli sviluppatori necessitano di implementare nelle applicazioni web è la possibilità di permettere agli utenti di scaricare file. Questo può essere realizzato in vari modi, ma qui ci concentreremo su come forzare il download di un file utilizzando Flask.

Inizia creando un nuovo file Python (ad esempio, app.py) e configura la tua applicazione Flask di base:


from flask import Flask, send_file

app = Flask(__name__)

@app.route('/')
def home():
    return 'Benvenuto nella pagina di download del file!'

if __name__ == '__main__':
    app.run(debug=True)

Per forzare il download di un file, utilizzerai la funzione send_file() di Flask, che consente di inviare file al client. Puoi specificare vari parametri come il percorso del file, il tipo MIME, e più importante, puoi impostare l'intestazione Content-Disposition su attachment per forzare il browser a mostrare la finestra di dialogo di download invece di visualizzare il file.


@app.route('/download')
def download_file():
    file_path = 'path/al/tuo/file.ext'
    return send_file(file_path, as_attachment=True)

Se desideri personalizzare il nome del file che l'utente vedrà durante il download, puoi farlo passando un dizionario delle intestazioni con una chiave Content-Disposition personalizzata a send_file():


from flask import safe_join

@app.route('/download-custom')
def download_file_custom_name():
    file_path = safe_join('path/al/tuo', 'file.ext')
    file_name = 'nome_personalizzato.ext'
    return send_file(file_path, as_attachment=True, download_name=file_name)

Conclusione

Forzare il download di file in un'applicazione Flask è un processo semplice e diretto. Utilizzando la funzione send_file() e configurando correttamente le intestazioni, puoi facilmente permettere agli utenti di scaricare file dal tuo sito web. Ricorda di testare sempre le funzionalità di download per garantire che funzionino come previsto su diversi browser e dispositivi.

Torna su