× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Làm thế nào để tạo một web server Python?

12/01/2022 09:42

Khả năng truy cập đó mở rộng đến việc tạo một máy chủ web Python, bạn có thể thực hiện điều này chỉ trong một vài dòng mã. Dưới đây là một số thông tin về Python Web Server mà có thể bạn sẽ cần tìm hiểu.

Python vẫn là một trong những ngôn ngữ lập trình tốt nhất để học vào năm 2022 , với các ứng dụng trong phát triển web back-end, học máy, lập mô hình khoa học, hoạt động hệ thống và một số phần mềm dành riêng cho doanh nghiệp. Ngôn ngữ này thường được coi là một trong những ngôn ngữ lập trình dễ tiếp cận hơn, với cú pháp được gõ động, giống tiếng Anh và nhiều thư viện. 

Python Web Server là gì?

Trong cơ sở hạ tầng của internet, máy chủ là một phần của mô hình máy khách-máy chủ. Khi trình duyệt khách truy cập một trang web, nó sẽ đưa ra một yêu cầu HTTP đến máy chủ chứa các tệp cần thiết để vận hành một trang web. Máy chủ lắng nghe yêu cầu của khách hàng, xử lý và phản hồi với các tệp cần thiết để hiển thị trang web. Nội dung này có thể là HTML (văn bản và phương tiện bạn thấy trên trang web) và JSON (ứng dụng).

python web server

Bạn có thể đã gặp một vài mã lỗi máy chủ khi duyệt Internet - “không tìm thấy tệp” hoặc 404 là một mã phổ biến hơn. Trong những trường hợp này, máy chủ gặp sự cố khi truy cập một số tệp nhất định. Với lỗi 404, tệp cụ thể bị thiếu.

Có nhiều sắc thái hơn đối với máy chủ web, bao gồm phân loại thành máy chủ web tĩnh và động. Ví dụ: máy chủ web tĩnh chỉ trả về các tệp như hiện tại mà không cần xử lý thêm. Máy chủ web động giới thiệu cơ sở dữ liệu và máy chủ ứng dụng, mà bạn có thể tiếp tục khi đã sử dụng xong máy chủ tĩnh. 

Sau khi nói tất cả những điều đó, chúng ta sẽ đi vào cách bạn tạo một máy chủ web. Chúng tôi sẽ cho rằng bạn đang chạy phiên bản Python mới nhất. Có các tài nguyên để bạn học cách chạy tập lệnh python , trong số các bài học hữu ích khác. 

>>> Đọc thêm:5 mẹo để học một ngôn ngữ lập trình mới vào năm 2022

Làm thế nào để bạn tạo một máy chủ web Python đơn giản?

Khởi chạy một máy chủ web Python rất nhanh chóng và đơn giản, và bạn sẽ chỉ mất vài phút để thiết lập và chạy. Tất cả chỉ cần một dòng mã để có được các máy chủ cục bộ chạy trên máy tính của bạn một cách đơn giản nhất. 

Bằng cách kiểm tra cục bộ, hệ thống của bạn sẽ trở thành máy chủ cho máy khách là trình duyệt của bạn và các tệp được lưu trữ cục bộ trên hệ thống của bạn. Mô-đun bạn sẽ sử dụng để tạo máy chủ web là máy chủ http của Python. Có một lưu ý cho điều này: nó chỉ có thể được sử dụng như một máy chủ tệp tĩnh. Bạn sẽ cần một khung công tác web Python, như Django, để chạy các máy chủ web động.

Hãy đi đến đoạn mã, trông như sau:

python -m http .server

Nhập mã này vào dòng lệnh hoặc dấu nhắc lệnh, tùy thuộc vào hệ thống của bạn và bạn sẽ thấy thông báo “máy chủ đã khởi động” và “máy chủ đã dừng” khi bạn đóng máy chủ.

Và bạn đã có nó - máy chủ web Python đầu tiên của bạn! Phải thừa nhận rằng đó là một công cụ đơn giản, không làm gì hơn ngoài việc mở một máy chủ web trên cổng mặc định của hệ thống là 8000. Cổng cũng có thể được thay đổi bằng cách chỉ định số cổng ở cuối dòng, như sau:

python  -m  http .server 8080
 

Một máy chủ web đơn giản như máy chủ bạn vừa tạo đều hoạt động tốt. Tuy nhiên, việc tạo một máy chủ web tùy chỉnh sẽ thú vị và mang tính giáo dục hơn nhiều. Rốt cuộc, cách tốt nhất để học python là thông qua cách tiếp cận thực hành - mã, gỡ lỗi, sửa chữa, rửa sạch và lặp lại. 

Tạo máy chủ web tùy chỉnh bằng Python

Máy chủ web tùy chỉnh cho phép bạn làm được nhiều việc hơn một máy chủ web tích hợp sẵn. Đoạn mã bạn sắp xem sẽ dạy cho bạn rất nhiều điều về một số chức năng và quy trình quan trọng. Đừng để ý đến độ dài của mã - chỉ có một số khái niệm chính ở đây. Bạn không cần phải gõ thủ công tất cả những điều này để tự kiểm tra - nhưng hãy lưu ý tầm quan trọng của những khái niệm đó.

từ http.server nhập HTTPServer, BaseHTTPRequestHandler # thư viện tích hợp sẵn của Python

 

import time
hostName = "localhost"
serverPort = 8080 #You can choose any available port; by default, it is 8000
Class MyServer(BaseHTTPRequestHandler):  
 def do_GET(self): //the do_GET method is inherited from BaseHTTPRequestHandler 
   self.send_response(200)    
              self.send_header("Content-type", "text/html")
              self.end_headers()
             self.wfile.write(bytes("<html><head><title>https://testserver.com</title></head>", "utf-8"))
             self.wfile.write(bytes("<p>Request: %s</p>" % self.path, "utf-8"))
             self.wfile.write(bytes("<body>", "utf-8"))
               self.wfile.write(bytes("<p>This is an example web server.</p>", "utf-8"))
             self.wfile.write(bytes("</body></html>", "utf-8"))
if __name__ == "__main__":        
  webServer = HTTPServer((hostName, serverPort), MyServer)
             print("Server started http://%s:%s" % (hostName, serverPort))  #Server starts
try:
          webServer.serve_forever()
except KeyboardInterrupt:
pass
webServer.server_close()  #Executes when you hit a keyboard interrupt, closing the server
    print("Server stopped.")

Trước khi đi vào những phần quan trọng, chúng ta hãy nhanh chóng điểm qua một vài điều. Nếu bạn đã hoàn thành bài tập về nhà HTML, thì bạn sẽ thấy một số thuật ngữ quen thuộc trong mã. Lớp MyServer ghi vào luồng đầu ra (wfile) được gửi dưới dạng phản hồi tới máy khách bằng cách sử dụng “self.wfile.write ()”. Những gì chúng tôi đang làm ở đây là viết một trang HTML cơ bản một cách nhanh chóng.

Chúng tôi sẽ giải quyết một số thực thi quan trọng hơn đang diễn ra ở đây, cụ thể là:

  • Mô-đun http.server
  • Các lớp HTTPServer và BaseHTTPRequestHandler, bắt nguồn từ thư viện http.server
  • Phương thức do_GET

Máy chủ HTTP là một mô-đun tiêu chuẩn trong thư viện Python có các lớp được sử dụng trong giao tiếp máy khách-máy chủ. Hai lớp đó là HTTPServer và BaseHTTPRequestHandler. Cái sau truy cập vào máy chủ thông qua cái trước. HTTPServer lưu trữ địa chỉ máy chủ dưới dạng các biến cá thể, trong khi BaseHTTPRequestHandler gọi các phương thức để xử lý các yêu cầu.

Tóm lại, mã bắt đầu ở chức năng chính. Tiếp theo, lớp MyServer được gọi và BaseHTTPRequestHandler gọi phương thức do_GET () để đáp ứng các yêu cầu. Khi bạn ngắt chương trình, máy chủ sẽ đóng lại.

Kết luận:

Không mất nhiều thời gian để làm cho máy chủ web của bạn sử dụng Python. Đó là ý tưởng cơ bản mà bạn nên tiếp thu. Tạo máy chủ của bạn là một bước tiến nhỏ nhưng quan trọng trên con đường tạo các ứng dụng toàn ngăn xếp. 

Nếu muốn tìm hiểu về Python hay nhanh tay đăng ký ngay khóa học lập trình Python. Tham khảo thêm khóa học lập trình tại Viện CNTT T3H.