Dalam bidang pembangunan web, Flask telah muncul sebagai rangka kerja mikro yang popular untuk membina aplikasi web kerana kesederhanaan dan fleksibiliti. Satu keperluan biasa dalam banyak aplikasi flask ialah mengendalikan muat naik fail. Walau bagaimanapun, membolehkan pengguna memuat naik fail tanpa sekatan yang betul boleh membawa kepada pelbagai isu, seperti penggunaan penyimpanan pelayan yang berlebihan dan risiko keselamatan yang berpotensi. Dalam blog ini, sebagai pembekal flask penapisan, saya akan membimbing anda melalui proses penapisan fail aplikasi flask flask berdasarkan saiz.
Memahami asas -asas fail muat naik dalam kelalang
Sebelum kita menyelidiki penapisan saiz, mari kita semak secara ringkas bagaimana muat naik fail berfungsi dalam kelalang. Flask menyediakan cara mudah untuk mengendalikan muat naik fail melaluipermintaan.filesobjek. Apabila pengguna mengemukakan borang dengan medan input fail, fail yang dimuat naik boleh diakses dalam aplikasi Flask.
Berikut adalah contoh mudah aplikasi flask yang menerima muat naik fail:
dari Flask Import Flask, minta app = flask (__ name__) @app.route ('/upload', methods = ['post']) def upload_file (): file = request.files ['file'] jika fail: file.save ('uploads/' + file.filename ' '__main__': app.run (debug = benar)
Dalam kod ini, kami menentukan laluan/muat naikyang menerima permintaan pos. Apabila fail dimuat naik, ia disimpan dimuat naikdirektori.


Mengapa penapis fail muat naik berdasarkan saiz?
Terdapat beberapa sebab mengapa anda mungkin mahu menapis muat naik fail berdasarkan saiz. Pertama, penyimpanan pelayan adalah sumber terhingga. Membolehkan pengguna memuat naik fail yang sangat besar boleh dengan cepat membuang ruang pelayan anda. Kedua, muat naik fail yang besar boleh menyebabkan masalah prestasi, terutamanya jika pelayan anda mempunyai jalur lebar terhad. Di samping itu, pengguna berniat jahat mungkin cuba memuat naik fail yang sangat besar sebagai satu bentuk penafian - serangan perkhidmatan.
Melaksanakan penapisan saiz dalam kelalang
Untuk melaksanakan penapisan saiz dalam aplikasi flask, kita perlu menyemak saiz fail yang dimuat naik sebelum menyimpannya. Kelalang tidak memberikan cara langsung untuk mendapatkan saiz fail daripermintaan.filesobjek, tetapi kita boleh menggunakanAndamodul dalam python untuk mencapai matlamat ini.
Berikut adalah versi terkini contoh sebelumnya dengan penapisan saiz:
import os dari kelalang import flask, minta app = flask (__ name__) max_file_size = 1024 * 1024 # 1MB @app.route ('/muat naik', methods = ['pos']) def upload_file (): file = request.files [' file.seek (0) jika file_size> max_file_size: return 'saiz fail melebihi had' file.save ('muatloads/' + file.filename) kembali 'Fail dimuat naik dengan jayanya' kembali 'tidak dimuat naik'
Dalam kod ini, kita mula -mula menentukan saiz fail maksimumMax_file_size(Dalam kes ini, 1MB). Apabila fail dimuat naik, kami menggunakanmencaridanBeritahuKaedah untuk mendapatkan saiz fail. Jika saiz fail melebihi had maksimum, kami mengembalikan mesej ralat. Jika tidak, kami menyimpan fail seperti biasa.
Menggunakan Flask - WTF untuk Pengesahan Borang
Flask - WTF adalah lanjutan untuk kelalang yang memudahkan pengendalian bentuk dan pengesahan. Kita boleh menggunakannya untuk melakukan penapisan saiz dengan cara yang lebih elegan.
Pertama, pasang Flask - WTF:
PIP Pasang Flask - WTF
Berikut adalah contoh menggunakan Flask - WTF untuk penapisan saiz:
dari kelalang import kelalang, render_template, permintaan dari flask_wtf import flaskform dari wtforms import filefield dari wtforms.validators import import ommport os = flask (__ name__) app.config ['secret_key'] = 'your_secret_key' FileField ('muat naik fail', validators = [datarequired ()]) @app.route ('/upload', methods = ['get', 'post']) def upload_file: form = uploadform () jika form.validate_on_submit () file.seek (0) jika file_size> max_file_size: return 'saiz fail melebihi had' file.save ('muatloads/' + file.filename) file return '
Dalam contoh ini, kami membuat kelas bentukMemuat naikMenggunakan Flask - WTF. Borang itu mempunyaiFilefielduntuk memuat naik fail. Apabila borang diserahkan, kami melakukan pemeriksaan saiz seperti dahulu.
Pertimbangan untuk persekitaran yang berbeza
Apabila melaksanakan penapisan saiz, penting untuk mempertimbangkan persekitaran yang berbeza di mana aplikasi kelalang anda mungkin dijalankan. Sebagai contoh, dalam persekitaran pembangunan, anda mungkin mahu menetapkan saiz fail maksimum yang agak rendah untuk tujuan ujian. Dalam persekitaran pengeluaran, anda mungkin perlu menyesuaikan had berdasarkan sumber pelayan anda dan sifat aplikasi anda.
Produk Flask Penapisan Kami
Sebagai pembekal flask penapisan, kami menawarkan pelbagai jenis penapisan berkualiti tinggi untuk pelbagai aplikasi makmal. KamiMakmal Clear Glass Filtering Flasks Dengan Tubulature Atasdiperbuat daripada kaca yang jelas, yang membolehkan pemerhatian mudah proses penapisan. Mereka direka dengan tiub atas untuk penapisan yang cekap.
Satu lagi produk popular adalah milik kitaKaca Makmal Bentuk Konikal Erlenmeyer Penapisan Flasks Dengan Tubulasi Atas. Bentuk kerucut memberikan kestabilan yang lebih baik dan sesuai untuk pelbagai tugas penapisan.
Hubungi kami untuk perolehan
Sekiranya anda berminat dengan penapisan kami atau mempunyai sebarang pertanyaan mengenai penapisan saiz dalam aplikasi flask, kami menjemput anda untuk menghubungi kami untuk perbincangan perolehan. Pasukan pakar kami bersedia membantu anda mencari produk yang sesuai untuk keperluan anda.
Rujukan
- Dokumentasi Flask
- Python
AndaDokumentasi modul - Flask - Dokumentasi WTF
