English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Tutorial Flask
Gestire il caricamento dei file in Flask è molto semplice. Ha bisogno di un modulo HTML del tipo 'multipart/form-data' che invia il modulo a un URL specifico. Il gestore dell'URL estrae il file dall'oggetto request.files[] e lo salva nel percorso desiderato.
Puoi definire il percorso predefinito della cartella di upload e la dimensione massima del file da caricare nella configurazione dell'oggetto Flask. Ogni file caricato viene salvato prima in una posizione temporanea sul server e poi nel percorso finale. Il nome del file può essere codificato in modo statico o può essere recuperato dall'attributo filename dell'oggetto request.files[file]. Tuttavia, si consiglia di utilizzare la funzione secure_filename() per ottenere la versione sicura.
Variabile | Spiegazione |
app.config['UPLOAD_FOLDER'] | Definire il percorso della cartella di upload |
app.config['MAX_CONTENT_PATH'] | Specificare la dimensione massima del file da caricare - in byte |
Il seguente codice ha la regola dell'URL: /upload, che visualizza il file upload.html nella cartella templates e la regola dell'URL => /upload-file che chiama la funzione uploader() per gestire il processo di upload.
upload.html ha un pulsante di selezione dei file e un pulsante di invio.
# Nome File: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com # Data: 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Esempio Flask</title> </head> <body> <form action="http://localhost:5000/upload" method="POST"> enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="Invio"/> </form> </body> </html>
Verrà visualizzato come nella seguente schermata -
Clicca dopo aver selezionato il file InvioIl metodo POST del modulo di formulari chiama l'URL => /upload_file. La funzione di basso livello uploader() esegue l'operazione di salvataggio dei file.
Di seguito è riportato il codice Python dell'applicazione Flask.
# Nome File: example.py # Copyright: 2020 Da w3codebox # Autore: it.oldtoolbag.com # Data: 2020-08-08 from flask import Flask, render_template, request from werkzeug import secure_filename app = Flask(__name__) @app.route('/upload', methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': f = request.files['file'] print(request.files) f.save(secure_filename(f.filename)) return 'file caricato con successo' else: return render_template('upload.html') if __name__ == '__main__': app.run(debug=True)
Dopo aver eseguito il programma, eseguire il codice sopra, selezionare un file immagine e quindi fare clic su Carica, ottenere i seguenti risultati -