Wie filtere ich Datei-Uploads der Flask-Anwendung nach Größe?

Nov 20, 2025Eine Nachricht hinterlassen

Im Bereich der Webentwicklung hat sich Flask aufgrund seiner Einfachheit und Flexibilität zu einem beliebten Mikro-Framework für die Erstellung von Webanwendungen entwickelt. Eine häufige Anforderung in vielen Flask-Anwendungen ist die Handhabung von Datei-Uploads. Wenn Benutzern jedoch das Hochladen von Dateien ohne angemessene Einschränkungen gestattet wird, kann dies zu verschiedenen Problemen führen, beispielsweise zu einer übermäßigen Serverspeicherauslastung und potenziellen Sicherheitsrisiken. In diesem Blog werde ich Sie als Lieferant von Filtering Flask durch den Prozess des Filterns der Datei-Uploads der Flask-Anwendung nach Größe führen.

Verstehen der Grundlagen des Datei-Uploads in Flask

Bevor wir uns mit der Größenfilterung befassen, schauen wir uns kurz an, wie Datei-Uploads in Flask funktionieren. Flask bietet eine unkomplizierte Möglichkeit, Datei-Uploads zu verwaltenrequest.filesObjekt. Wenn ein Benutzer ein Formular mit einem Dateieingabefeld sendet, kann in der Flask-Anwendung auf die hochgeladene Datei zugegriffen werden.

Hier ist ein einfaches Beispiel einer Flask-Anwendung, die Datei-Uploads akzeptiert:

from flask import Flask, request app = Flask(__name__) @app.route('/upload', Methods=['POST']) def upload_file(): file = request.files['file'] if file: file.save('uploads/' + file.filename) return 'Datei erfolgreich hochgeladen' return 'Keine Datei hochgeladen' if __name__ == '__main__': app.run(debug=True)

In diesem Code definieren wir eine Route/hochladendas POST-Anfragen akzeptiert. Wenn eine Datei hochgeladen wird, wird sie im gespeichertUploadsVerzeichnis.

Clear glass Filtering FlaskLaboratory Clear Glass Filtering Flasks With Upper Tubulature

Warum Datei-Uploads nach Größe filtern?

Es gibt mehrere Gründe, warum Sie Datei-Uploads nach Größe filtern möchten. Erstens ist Serverspeicher eine endliche Ressource. Wenn Sie Benutzern erlauben, extrem große Dateien hochzuladen, kann der verfügbare Speicherplatz auf Ihrem Server schnell erschöpft sein. Zweitens können große Datei-Uploads zu Leistungsproblemen führen, insbesondere wenn Ihr Server über eine begrenzte Bandbreite verfügt. Darüber hinaus könnten böswillige Benutzer versuchen, sehr große Dateien als eine Form eines Denial-of-Service-Angriffs hochzuladen.

Implementieren der Größenfilterung in Flask

Um die Größenfilterung in einer Flask-Anwendung zu implementieren, müssen wir die Größe der hochgeladenen Datei überprüfen, bevor wir sie speichern. Flask bietet keine direkte Möglichkeit, die Dateigröße aus dem zu ermittelnrequest.filesObjekt, aber wir können das verwendenDuModul in Python, um dies zu erreichen.

Hier ist eine aktualisierte Version des vorherigen Beispiels mit Größenfilterung:

Betriebssystem aus Flasche importieren, Flasche importieren, anfordern app = Flask(__name__) MAX_FILE_SIZE = 1024 * 1024 # 1 MB @app.route('/upload', methoden=['POST']) def upload_file(): file = request.files['file'] if file: file.seek(0, os.SEEK_END) file_size = file.tell() file.seek(0) if file_size > MAX_FILE_SIZE: Rückgabe „Dateigröße überschreitet den Grenzwert“ file.save('uploads/' + file.filename) Rückgabe „Datei erfolgreich hochgeladen“ Rückgabe „Keine Datei hochgeladen“ if __name__ == '__main__': app.run(debug=True)

In diesem Code definieren wir zunächst eine maximale DateigrößeMAX_FILE_SIZE(in diesem Fall 1 MB). Wenn eine Datei hochgeladen wird, verwenden wir diesuchenUnderzählenMethoden, um die Größe der Datei zu ermitteln. Wenn die Dateigröße das maximale Limit überschreitet, geben wir eine Fehlermeldung zurück. Ansonsten speichern wir die Datei wie gewohnt.

Verwendung von Flask - WTF zur Formularvalidierung

Flask – WTF ​​ist eine Erweiterung für Flask, die die Formularverarbeitung und -validierung vereinfacht. Wir können damit die Größenfilterung auf elegantere Weise durchführen.

Installieren Sie zunächst Flask - WTF:

pip install flask - wtf

Hier ist ein Beispiel für die Verwendung von Flask - WTF zur Größenfilterung:

aus Flask Flask importieren, render_template, Anfrage aus flask_wtf FlaskForm aus Wtforms importieren FileField aus wtforms.validators importieren DataRequired importieren os app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' MAX_FILE_SIZE = 1024 * 1024 # 1 MB Klasse UploadForm(FlaskForm): Datei = FileField('Upload File', validators=[DataRequired()]) @app.route('/upload', Methods=['GET', 'POST']) def upload_file(): form = UploadForm() if form.validate_on_submit(): file = form.file.data file.seek(0, os.SEEK_END) file_size = file.tell() file.seek(0) if file_size > MAX_FILE_SIZE: return „Dateigröße überschreitet das Limit“ file.save('uploads/' + file.filename) return 'Datei erfolgreich hochgeladen' return render_template('upload.html', form=form) if __name__ == '__main__': app.run(debug=True)

In diesem Beispiel erstellen wir eine FormularklasseUploadFormmit Flask - WTF. Das Formular hat eineFileFieldfür Datei-Uploads. Beim Absenden des Formulars führen wir wie zuvor die Größenprüfung durch.

Überlegungen für verschiedene Umgebungen

Bei der Implementierung der Größenfilterung ist es wichtig, die verschiedenen Umgebungen zu berücksichtigen, in denen Ihre Flask-Anwendung möglicherweise ausgeführt wird. In einer Entwicklungsumgebung möchten Sie beispielsweise zu Testzwecken eine relativ niedrige maximale Dateigröße festlegen. In einer Produktionsumgebung müssen Sie das Limit möglicherweise basierend auf den Ressourcen Ihres Servers und der Art Ihrer Anwendung anpassen.

Unsere Filterflaschenprodukte

Als Lieferant von Filterkolben bieten wir eine breite Palette hochwertiger Filterkolben für verschiedene Laboranwendungen an. UnserLabor-Filterkolben aus klarem Glas mit oberer Röhrebestehen aus klarem Glas, was eine einfache Beobachtung des Filtervorgangs ermöglicht. Sie sind mit einem oberen Rohr für eine effiziente Filtration ausgestattet.

Ein weiteres beliebtes Produkt ist unserKonische Erlenmeyer-Filterkolben aus Laborglas mit oberer Röhre. Die konische Form sorgt für eine bessere Stabilität und eignet sich für vielfältige Filtrationsaufgaben.

Kontaktieren Sie uns für die Beschaffung

Wenn Sie an unseren Filterkolben interessiert sind oder Fragen zur Größenfilterung in Kolbenanwendungen haben, laden wir Sie ein, uns für Beschaffungsgespräche zu kontaktieren. Unser Expertenteam hilft Ihnen gerne dabei, die richtigen Produkte für Ihre Bedürfnisse zu finden.

Referenzen

  • Flaschendokumentation
  • PythonDuModuldokumentation
  • Flask – WTF-Dokumentation