Làm cách nào để bạn tải xuống và tải lên các tệp bằng python?

Flask là một trong những framework phổ biến nhất để phát triển phụ trợ. Nó là một microframework dựa trên ngôn ngữ lập trình python. Thay vào đó, một Flask micro-framework rất mạnh và có khả năng mở rộng cao. Vì Python phổ biến cho Machine Learning và Data Science, nên Flask được sử dụng rất nhiều để phục vụ các ứng dụng liên quan đến Machine Learning và Data Science. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo trình tải lên và tải xuống tệp bằng Flask

Tải lên và tải xuống tệp là một nhiệm vụ quan trọng đối với một trang web. Ví dụ: giả sử rằng chúng tôi đang xây dựng một trang web lấy một số hình ảnh từ các tệp tải lên của người dùng và chuyển đổi chúng thành một tệp PDF duy nhất. Sau khi chuyển đổi hình ảnh thành PDF, trang web sẽ cung cấp PDF cho người dùng. Chúng ta cần học cách tải lên và tải xuống các tệp bằng cách sử dụng các khung phía máy chủ như Flask trong tình huống như vậy

cài đặt bình

Chúng ta có thể cài đặt Flask dễ dàng với sự trợ giúp của công cụ pip. PIP là một công cụ dòng lệnh và nó là trình quản lý gói mặc định để quản lý các gói python. Để cài đặt Flask framework, chúng ta cần chạy lệnh sau trong terminal

pip install flask

Khi chạy lệnh trên trong thiết bị đầu cuối, chúng tôi sẽ cài đặt Flask trong hệ thống của chúng tôi. Chúng tôi có thể kiểm tra cài đặt của mình bằng cách mở trình bao python và nhập thư viện Flask. Xem hình bên dưới để minh họa

kiểm tra việc cài đặt Flask bằng cách nhập thư viện

Bây giờ, hãy để chúng tôi tạo trình tải lên tệp của mình bằng Flask

ĐỀ XUẤT ĐỌC

  • Cách sử dụng thời gian Python. phương thức thời gian []

  • 10 cách phối màu vim tốt nhất cho Python và cách cài đặt

Tạo Trình tải tệp lên

Bước đầu tiên trong khi tạo trình tải lên tệp của chúng tôi là xây dựng biểu mẫu Html. Để xuất bản tệp, chúng ta cần đặt thuộc tính enctype của biểu mẫu thành


  
    
    
    
    File uploader
  
  
    
      
      
    
  
0. Đầu tiên, tạo một thư mục mẫu trong thư mục hiện tại. Sau đó, tạo một tệp có tên tải lên. html trong thư mục mẫu và sao chép mã HTML sau vào tệp tải lên. tệp html


  
    
    
    
    File uploader
  
  
    
      
      
    
  

Sau khi tạo mẫu HTML cho trình tải tệp lên, bây giờ, trong thư mục chính, hãy tạo một tệp có tên ứng dụng. py. ứng dụng. tệp py chứa mã cho ứng dụng Flask của chúng tôi. Chúng tôi cũng sẽ sử dụng chức năng secure_filename[] của mô-đun werkzeug. Mô-đun secure_filename[] kiểm tra lỗ hổng trong các tệp đã tải lên và bảo vệ máy chủ khỏi các tệp nguy hiểm. Copy đoạn mã sau vào ứng dụng. tập tin py

# importing the required libraries
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename
# initialising the flask app
app = Flask[__name__]

# The path for uploading the file
@app.route['/']
def upload_file[]:
   return render_template['upload.html']

@app.route['/upload', methods = ['GET', 'POST']]
def uploadfile[]:
   if request.method == 'POST': # check if the method is post
      f = request.files['file'] # get the file from the files object
      f.save[secure_filename[f.filename]] # this will secure the file
      return 'file uploaded successfully' # Display thsi message after uploading
		
if __name__ == '__main__':
   app.run[] # running the flask app

Trong đoạn mã trên, trước tiên chúng tôi đã nhập các mô-đun cần thiết vào mã của mình. Sau khi nhập các mô-đun cần thiết, chúng tôi khởi tạo ứng dụng Flask bằng cách gọi hàm tạo Flask[]. Tiếp theo, chúng tôi sử dụng trình trang trí python để xác định các tuyến đường cho ứng dụng Flask của chúng tôi và phục vụ mẫu HTML mà chúng tôi đã tạo. Tiếp theo, chúng tôi sử dụng trình trang trí python để chấp nhận yêu cầu đăng tệp và lưu tệp

Bạn có thể chạy đoạn mã trên bằng cách chỉ cần gõ


  
    
    
    
    File uploader
  
  
    
      
      
    
  
1 trong thiết bị đầu cuối. Chúng ta sẽ thấy một cái gì đó như trong hình bên dưới khi chạy đoạn mã trên

khởi động máy chủ Flask

Bây giờ, hãy truy cập URL http. //127. 0. 0. 1. 5000/ nơi bạn sẽ thấy trình tải tệp lên như trong hình bên dưới

ĐỀ XUẤT ĐỌC

  • Cách sử dụng thời gian Python. phương thức thời gian []

  • 10 cách phối màu vim tốt nhất cho Python và cách cài đặt

một trang web tải lên đơn giản trong Flask

Tải lên tệp mẫu bằng cách chọn tệp và nhấp vào nút gửi. Sau khi gửi tệp, chúng tôi sẽ nhận được thông báo cho biết tệp đã được tải lên thành công. Chúng tôi có thể kiểm tra tệp trong máy chủ bằng cách truy cập thư mục gốc

Định cấu hình thư mục tải lên

Chúng tôi đã tạo một trình tải tệp lên để lưu tệp đã tải lên trong thư mục gốc. Chúng tôi cũng có thể định cấu hình thư mục để lưu tệp bằng cách định cấu hình ứng dụng. biến config[‘UPLOAD_FOLDER’]. Lúc đầu, tệp đã tải lên được lưu vào một vị trí tạm thời, sau đó nó di chuyển đến vị trí cuối cùng. Đoạn mã sau cho biết cách định cấu hình thư mục tải lên

# importing the required libraries
import os
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename

# initialising the flask app
app = Flask[__name__]

# Creating the upload folder
upload_folder = "uploads/"
if not os.path.exists[upload_folder]:
   os.mkdir[upload_folder]

app.config['UPLOAD_FOLDER'] = upload_folder

# The path for uploading the file
@app.route['/']
def upload_file[]:
   return render_template['upload.html']

@app.route['/upload', methods = ['GET', 'POST']]
def uploadfile[]:
   if request.method == 'POST': # check if the method is post
      f = request.files['file'] # get the file from the files object
      # Saving the file in the required destination
      f.save[os.path.join[app.config['UPLOAD_FOLDER'] ,secure_filename[f.filename]]] # this will secure the file
      return 'file uploaded successfully' # Display thsi message after uploading
		
if __name__ == '__main__':
   app.run[] # running the flask app

Trong đoạn mã trên, chúng tôi sử dụng mô-đun hệ điều hành của python để tạo một thư mục và lưu mọi tệp đã tải lên vào thư mục đã tạo. Nếu chúng tôi khởi động lại máy chủ và tải tệp lên máy chủ, tệp sẽ được tải lên thư mục đã tạo thay vì thư mục gốc

Định cấu hình kích thước tệp tối đa

Chúng tôi cũng có thể định cấu hình kích thước tải lên tối đa của tệp. Điều này rất quan trọng vì nếu tệp quá lớn so với máy chủ thì trang web có thể bị sập. Vì vậy, chúng tôi cần luôn giới hạn kích thước tải lên của tệp theo máy chủ của chúng tôi. Để định cấu hình kích thước tệp tối đa, chúng tôi cần đặt ứng dụng. config[‘MAX_CONTENT_LENGTH’] thành kích thước tối đa của tệp theo byte. Ví dụ: nếu chúng tôi muốn giới hạn kích thước tối đa của tệp là 1 Mb, chúng tôi cần thêm dòng mã sau vào chương trình của mình

app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

Sau khi đặt kích thước tệp tối đa của tệp trong chương trình python của chúng tôi, nếu chúng tôi tải lên tệp có kích thước lớn hơn 1 Mb, thì chúng tôi sẽ gặp lỗi như trong hình bên dưới

ĐỀ XUẤT ĐỌC

  • Cách sử dụng thời gian Python. phương thức thời gian []

  • 10 cách phối màu vim tốt nhất cho Python và cách cài đặt

đặt kích thước tải lên tối đa của tệp trong Flask

Định cấu hình phần mở rộng tệp được phép

Trong khi xây dựng trình tải lên tệp bằng Flask, chúng tôi cũng có thể định cấu hình các phần mở rộng tệp mà chúng tôi muốn tải lên. Để định cấu hình các phần mở rộng tệp được phép, chúng tôi cần tạo danh sách các phần mở rộng được phép và kiểm tra phần mở rộng tệp đã tải lên trong danh sách. Đoạn mã dưới đây cho thấy một minh họa thực tế của phương pháp

# importing the required libraries
import os
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename

# initialising the flask app
app = Flask[__name__]

# Creating the upload folder
upload_folder = "uploads/"
if not os.path.exists[upload_folder]:
   os.mkdir[upload_folder]

# Max size of the file
app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

# Configuring the upload folder
app.config['UPLOAD_FOLDER'] = upload_folder

# configuring the allowed extensions
allowed_extensions = ['jpg', 'png', 'pdf']

def check_file_extension[filename]:
    return filename.split['.'][-1] in allowed_extensions

# The path for uploading the file
@app.route['/']
def upload_file[]:
   return render_template['upload.html']

@app.route['/upload', methods = ['GET', 'POST']]
def uploadfile[]:
   if request.method == 'POST': # check if the method is post
      f = request.files['file'] # get the file from the files object
      # Saving the file in the required destination
      if check_file_extension[f.filename]:
         f.save[os.path.join[app.config['UPLOAD_FOLDER'] ,secure_filename[f.filename]]] # this will secure the file
         return 'file uploaded successfully' # Display thsi message after uploading
      else:
         return 'The file extension is not allowed'
		
if __name__ == '__main__':
   app.run[] # running the flask app

Trong đoạn mã trên, chúng tôi tạo một chức năng sẽ kiểm tra phần mở rộng tệp đã tải lên và so sánh nó với các phần mở rộng được phép. Nếu chúng ta upload file không có đuôi PDF, JPG, PNG thì server sẽ hiện thông báo như hình bên dưới

hạn chế tải lên một số phần mở rộng tệp nhất định trong Flask

Tải lên nhiều tệp bằng Flask

Cho đến bây giờ, chúng tôi đã thấy cách tải một tệp lên máy chủ của chúng tôi. Nhưng đôi khi, chúng tôi cũng muốn tải nhiều tệp lên máy chủ. Trước tiên, để tải nhiều tệp lên máy chủ của chúng tôi, chúng tôi cần thêm multiple=”true” làm thuộc tính cho thành phần đầu vào của biểu mẫu Html. Xem đoạn mã dưới đây để minh họa

________số 8

Sau khi tạo biểu mẫu Html, chúng ta cần thực hiện một số thay đổi đối với tệp ứng dụng Flask của mình. Đầu tiên, sao chép mã Python sau vào tệp ứng dụng Flask của bạn

# importing the required libraries
import os
from flask import Flask, render_template, request
from werkzeug.utils import secure_filename

# initialising the flask app
app = Flask[__name__]

# Creating the upload folder
upload_folder = "uploads/"
if not os.path.exists[upload_folder]:
   os.mkdir[upload_folder]

# Configuring the upload folder
app.config['UPLOAD_FOLDER'] = upload_folder

# configuring the allowed extensions
allowed_extensions = ['jpg', 'png', 'pdf']

def check_file_extension[filename]:
    return filename.split['.'][-1] in allowed_extensions

# The path for uploading the file
@app.route['/']
def upload_file[]:
   return render_template['upload.html']

@app.route['/upload', methods = ['GET', 'POST']]
def uploadfile[]:
   if request.method == 'POST': # check if the method is post
      files = request.files.getlist['files'] # get the file from the files object
      print[files]
      for f in files:
         print[f.filename]
         # Saving the file in the required destination
         if check_file_extension[f.filename]:
            f.save[os.path.join[app.config['UPLOAD_FOLDER'] ,secure_filename[f.filename]]] # this will secure the file

      return 'file uploaded successfully' # Display thsi message after uploading
		
if __name__ == '__main__':
   app.run[] # running the flask app

Trong đoạn mã trên, chúng tôi sử dụng vòng lặp python for để lặp qua danh sách các tệp và sau đó lưu từng tệp một. Bây giờ chúng tôi có thể chọn nhiều tệp và tải chúng lên máy chủ cùng một lúc

ĐỀ XUẤT ĐỌC

  • Cách sử dụng thời gian Python. phương thức thời gian []

  • 10 cách phối màu vim tốt nhất cho Python và cách cài đặt

Phục vụ các tập tin

Chúng tôi đã thấy cách tải tệp lên bằng Flask, nhưng đôi khi chúng tôi cũng muốn cung cấp tệp cho người dùng. Để phục vụ một tệp từ máy chủ của chúng tôi cho người dùng, chúng tôi cần sử dụng chức năng send_file[] của Flask. Đầu tiên, tạo một mẫu HTML trong thư mục mẫu, đặt tên là tải xuống tệp. html và thêm đoạn mã sau vào tệp Html


  
    
    
    
    File uploader
  
  
    
      
      
    
  
0

Đoạn mã HTML ở trên sẽ tạo một nút có nhãn Tải xuống và thêm một liên kết đến nút đề cập đến tuyến đường /tải xuống. Bây giờ, chúng ta cần tạo ứng dụng của mình. tập tin py. Trong ứng dụng của chúng tôi. py, chúng ta cần sử dụng hàm send_file[] và truyền đường dẫn của tệp tới nó. Sau đó, sao chép và dán đoạn mã sau vào ứng dụng. tập tin py


  
    
    
    
    File uploader
  
  
    
      
      
    
  
1

Sau khi sao chép đoạn mã trên, hãy chạy mã bằng cách gõ lệnh ứng dụng python. py. Nếu mọi thứ hoạt động tốt và máy chủ khởi động mà không gặp sự cố nào, chúng tôi đã tạo trình tải xuống tệp của mình. Bây giờ, hãy truy cập URL http. //127. 0. 0. 1. 5000/, bạn sẽ thấy một cái gì đó như trong hình bên dưới

tạo trình tải xuống tệp bằng Flask

Nếu bạn nhấp vào nút tải xuống có trong URL thì tệp sẽ bắt đầu tải xuống. Để đoạn mã trên hoạt động bình thường, chúng ta cần một tệp có tên sample. pdf trong thư mục ứng dụng

Phần kết luận

Trong hướng dẫn này, chúng ta đã học cách tạo trình tải lên và tải xuống tệp bằng thư viện Flask. Ngoài ra, chúng tôi đã xem cách định cấu hình kích thước tối đa và phần mở rộng của tệp tải lên. Bạn cũng có thể muốn xem hướng dẫn từng bước của chúng tôi về cách tạo ứng dụng Flask trong python

Làm cách nào để tải xuống và tải lên tệp trong máy chủ FTP bằng Python?

Cách tải xuống và tải tệp lên máy chủ FTP bằng Python .
nhập ftplib FTP_HOST = "ftp. dlptest. com" FTP_USER = "dlpuser@dlptest. com" FTP_PASS = "SzMf7rTE4pCrf9dV286GuNe4N"
# kết nối với máy chủ FTP ftp = ftplib

Làm cách nào để thêm tệp trong Python?

Trong Python, bạn sử dụng hàm open[] với một trong các tùy chọn sau – "x" hoặc "w" – để tạo tệp mới: "x" – Create: this command will create a new file if and only if there is no file already in existence with that name or else it will return an error.

Làm cách nào để tải lên và tải xuống các tệp từ Google Drive bằng Python?

Bước 1. Nhập thư viện. .
Bước 2. OAuth được thực hiện dễ dàng. .
Bước 3. Tải tệp lên Google Drive của bạn. .
Bước 4. Liệt kê các tệp từ Google Drive. .
Bước 5. Tải xuống tệp từ Google Drive. .
Bước 6. Tạo tệp Văn bản trong Google Drive. .
Bước 7. Đọc nội dung của tệp văn bản trực tiếp từ Google Drive

Chủ Đề