Hướng dẫn tạo form upload nhiều hình ảnh bằng Python
Hướng dẫn chi tiết cách tạo form upload nhiều hình ảnh sử dụng Flask - một framework Python đơn giản và hiệu quả.
Trong bài viết này, chúng ta sẽ học cách sử dụng Flask để tạo một ứng dụng web đơn giản cho phép người dùng tải lên nhiều hình ảnh cùng một lúc và lưu trữ chúng trên máy chủ.
Mã Python:
from flask import Flask, render_template, request
import os
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# Tạo thư mục để lưu trữ hình ảnh nếu chưa tồn tại
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
@app.route('/', methods=['GET', 'POST'])
def upload_files():
if request.method == 'POST':
# Kiểm tra xem có file nào được tải lên không
if 'files[]' not in request.files:
return "Không có tệp nào được chọn"
files = request.files.getlist('files[]')
# Lưu trữ các tệp đã được tải lên
for file in files:
if file.filename != '':
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
return "Tải lên thành công"
return '''
<!doctype html>
<html>
<head>
<title>Tải lên nhiều hình ảnh</title>
</head>
<body>
<h1>Upload nhiều hình ảnh</h1>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="Tải lên">
</form>
</body>
</html>
'''
if __name__ == '__main__':
app.run(debug=True)
Giải thích chi tiết từng dòng code:
-
from flask import Flask, render_template, request
: Nhập các module cần thiết từ Flask. -
UPLOAD_FOLDER = 'uploads'
: Định nghĩa thư mục lưu trữ hình ảnh tải lên. -
if not os.path.exists(UPLOAD_FOLDER)
: Tạo thư mụcuploads
nếu nó chưa tồn tại. -
@app.route('/', methods=['GET', 'POST'])
: Định nghĩa route chính cho ứng dụng, cho phép các phương thức GET và POST. -
if request.method == 'POST'
: Xử lý yêu cầu POST khi người dùng tải lên hình ảnh. -
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
: Lưu trữ hình ảnh trong thư mụcuploads
. - HTML form
input type="file" name="files[]" multiple>
: Cho phép chọn và tải lên nhiều hình ảnh.
Yêu cầu hệ thống:
- Python phiên bản 3.6 trở lên
- Flask phiên bản 2.0 trở lên
Cách cài đặt các thư viện để chạy được đoạn mã Python trên:
Sử dụng lệnh sau để cài đặt Flask:
pip install flask
Lời khuyên:
- Kiểm tra kỹ các tệp tải lên để tránh lỗi hoặc tập tin độc hại.
- Xem xét việc giới hạn kích thước và loại tệp để bảo vệ hệ thống của bạn.