Jak filtrować przesyłane pliki aplikacji Flask na podstawie rozmiaru?

Nov 20, 2025Zostaw wiadomość

W dziedzinie tworzenia stron internetowych Flask stał się popularnym mikro-frameworkiem do tworzenia aplikacji internetowych ze względu na swoją prostotę i elastyczność. Jednym z powszechnych wymagań w wielu aplikacjach Flask jest obsługa przesyłania plików. Jednak zezwolenie użytkownikom na przesyłanie plików bez odpowiednich ograniczeń może prowadzić do różnych problemów, takich jak nadmierne wykorzystanie pamięci serwera i potencjalne zagrożenia bezpieczeństwa. Na tym blogu, jako dostawca Filtering Flask, poprowadzę Cię przez proces filtrowania plików przesyłanych przez aplikację Flask na podstawie rozmiaru.

Zrozumienie podstaw przesyłania plików w Flasku

Zanim zagłębimy się w filtrowanie rozmiaru, przyjrzyjmy się krótko, jak działa przesyłanie plików w Flasku. Flask zapewnia prosty sposób obsługi przesyłania plików za pośrednictwem jegopliki.żądaniaobiekt. Gdy użytkownik prześle formularz z polem wejściowym pliku, dostęp do przesłanego pliku będzie można uzyskać w aplikacji Flask.

Oto prosty przykład aplikacji Flask, która akceptuje przesyłanie plików:

z kolby import Flask, zażądaj aplikacji = Flask(__name__) @app.route('/upload', metody=['POST']) def upload_file(): file = request.files['file'] if file: file.save('uploads/' + plik.nazwa pliku) return 'Plik przesłany pomyślnie' return 'Nie przesłano pliku' if __name__ == '__main__': app.run(debug=True)

W tym kodzie definiujemy trasę/wgrywaćktóry akceptuje żądania POST. Po przesłaniu pliku jest on zapisywany w formacieprzesłaneinformator.

Clear glass Filtering FlaskLaboratory Clear Glass Filtering Flasks With Upper Tubulature

Po co filtrować przesyłane pliki na podstawie rozmiaru?

Istnieje kilka powodów, dla których warto filtrować przesyłane pliki na podstawie rozmiaru. Po pierwsze, pamięć serwerowa to zasób ograniczony. Zezwolenie użytkownikom na przesyłanie bardzo dużych plików może szybko wyczerpać dostępne miejsce na serwerze. Po drugie, przesyłanie dużych plików może powodować problemy z wydajnością, szczególnie jeśli serwer ma ograniczoną przepustowość. Ponadto szkodliwi użytkownicy mogą próbować przesłać bardzo duże pliki w ramach ataku typu „odmowa usługi”.

Implementacja filtrowania rozmiaru w kolbie

Aby zaimplementować filtrowanie rozmiaru w aplikacji Flask, musimy sprawdzić rozmiar przesłanego pliku przed jego zapisaniem. Flask nie zapewnia bezpośredniego sposobu uzyskania rozmiaru pliku z plikupliki.żądaniaobiekt, ale możemy użyć obiektuTymoduł w Pythonie, aby to osiągnąć.

Oto zaktualizowana wersja poprzedniego przykładu z filtrowaniem rozmiaru:

importuj system operacyjny z kolby import Flask, żądaj aplikacji = Flask(__name__) MAX_FILE_SIZE = 1024 * 1024 # 1MB @app.route('/upload', method=['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: return 'Rozmiar pliku przekracza limit' file.save('uploads/' + file.filename) return 'Plik został przesłany pomyślnie' return 'Nie przesłano pliku' if __name__ == '__main__': app.run(debug=True)

W tym kodzie najpierw definiujemy maksymalny rozmiar plikuMAX_FILE_SIZE(w tym przypadku 1MB). Kiedy plik jest przesyłany, używamy rozszerzeniaszukaćIpowiedziećmetody uzyskania rozmiaru pliku. Jeśli rozmiar pliku przekroczy maksymalny limit, zwrócimy komunikat o błędzie. W przeciwnym razie zapisujemy plik w zwykły sposób.

Używanie Flaska - WTF do sprawdzania poprawności formularza

Flask - WTF to rozszerzenie dla Flask, które upraszcza obsługę formularzy i ich sprawdzanie. Możemy go użyć do przeprowadzenia filtrowania wielkości w bardziej elegancki sposób.

Najpierw zainstaluj Flask - WTF:

pip zainstaluj kolbę - wtf

Oto przykład użycia Flask - WTF do filtrowania według rozmiaru:

z kolby import Flask, render_template, żądanie z flask_wtf import FlaskForm z wtforms import FileField z wtforms.validators import DataRequired import os app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' MAX_FILE_SIZE = 1024 * 1024 # 1MB klasa UploadForm(FlaskForm): file = FileField('Prześlij plik', validators=[DataRequired()]) @app.route('/upload', method=['GET', 'POST']) def upload_file(): formularz = 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 'Rozmiar pliku przekracza limit' file.save('uploads/' + file.filename) return 'Plik przesłany pomyślnie' return render_template('upload.html', formularz=formularz) if __name__ == '__main__': app.run(debug=True)

W tym przykładzie tworzymy klasę formularzaPrześlij formularzużywając Flaska - WTF. Formularz posiadaPole plikudo przesyłania plików. Po przesłaniu formularza sprawdzamy rozmiar tak jak poprzednio.

Rozważania dotyczące różnych środowisk

Podczas wdrażania filtrowania rozmiaru ważne jest, aby wziąć pod uwagę różne środowiska, w których może działać aplikacja Flask. Na przykład w środowisku programistycznym możesz chcieć ustawić stosunkowo niski maksymalny rozmiar pliku do celów testowych. W środowisku produkcyjnym może być konieczne dostosowanie limitu w zależności od zasobów serwera i charakteru aplikacji.

Nasze produkty z kolbami filtrującymi

Jako dostawca kolb filtracyjnych oferujemy szeroką gamę wysokiej jakości kolb filtracyjnych do różnych zastosowań laboratoryjnych. NaszLaboratoryjne kolby filtracyjne z przezroczystego szkła z górną rurkąwykonane są z przezroczystego szkła, co pozwala na łatwą obserwację procesu filtrowania. Zostały zaprojektowane z górną rurką zapewniającą skuteczną filtrację.

Kolejnym popularnym produktem jest naszSzklane laboratoryjne kolby filtracyjne Erlenmeyera o stożkowym kształcie z górną rurką. Stożkowy kształt zapewnia lepszą stabilność i nadaje się do różnych zadań filtracyjnych.

Skontaktuj się z nami w sprawie zakupów

Jeśli są Państwo zainteresowani naszymi kolbami filtrującymi lub mają Państwo jakiekolwiek pytania dotyczące filtrowania wielkości w zastosowaniach kolbowych, zapraszamy do kontaktu w celu omówienia zakupów. Nasz zespół ekspertów jest gotowy pomóc Ci w znalezieniu odpowiednich produktów dostosowanych do Twoich potrzeb.

Referencje

  • Dokumentacja kolby
  • PytonTydokumentacja modułu
  • Kolba - dokumentacja WTF