Khoá học: Thiết lập dự án Wordpress

Nếu bạn đang tìm kiếm một cách nhanh chóng và hiệu quả để thiết lập một trang web cá nhân hoặc doanh nghiệp của mình, hãy bắt đầu với WordPress. Được coi là nền tảng quản lý nội dung (CMS) phổ biến nhất trên thế giới, WordPress cho phép bạn dễ dàng tạo ra một [...]

Bài 6: Khởi tạo server trong Python

Từ đầu series đến giờ chúng ta đều sử dụng python trên giao diện comandline, chắc các bạn đã chán rồi đúng không? Hôm nay chúng ta sẽ đổi gió và thử khởi tạo một con server http bằng Python nhé!

1, Tạo một con server đơn giản.

Đầu tiên để có thể khởi tạo được một con server thì bạn cần import module htttp.server của Python vào trong chương trình:

from http.server import BaseHTTPRequestHandler, HTTPServer

Và ở đây chúng ta cần sử dụng đến 2 object BaseHTTPRequestHandler, HTTPServer trong module http.server.

Tiếp đó chúng ta sẽ khai báo một class kế thừa từ class BaseHTTPRequestHandler của Python. Và khai báo thêm một phương thức do_GET() để xử lý khi có get Request gửi lên.

from http.server import BaseHTTPRequestHandler, HTTPServer
 
# HTTPRequestHandler class
class SimpleHTTP(BaseHTTPRequestHandler):
 
  # Nhận GET request gửi lên.
  def do_GET(self):
        # SET http status trả về
        self.send_response(200)
 
        # Thiết lập header trả về
        self.send_header('Content-type','text/html')
        self.end_headers()
        # Data
        message = "Hoc Lap Trinh Tai Toidicode.com"
        # Write data dưới dạng utf8
        self.wfile.write(bytes(message, "utf8"))
        return

Ngoài ra thì trong lớp BaseHTTPRequestHandler còn hỗ trợ chúng ta một số các thuộc tính và phương thức như sau:

FieldMô Tả
server_versionTrả về version của server.
do_HEAD()Phương thức này cấu hình thông số head trả về.
do_GET()Phương thức xử lý khi có GET request gửi lên.
do_POST()Phương thức xử lý khi có POST request gửi lên.
client_addressThuộc tính này trả về tuple chứa host và port của server đang chạy.
commandThuộc tính này trả về kiểu của request gửi lên.
pathThuộc tính này trả về path của request gửi lên.
request_versionThuộc tính này trả về version của request hiện tại.
headersThuộc tính này trả về tất tất cả những gì mà request gửi lên.
….. Các bạn có thể xem thêm tại đây.

Sau khi đã cấu hình xong thông số và các hành động xử lý. Giờ chúng ta sẽ sử dụng đến đối tượng HTTPServer để khởi chạy server.

from http.server import BaseHTTPRequestHandler, HTTPServer
 
# HTTPRequestHandler class
class SimpleHTTP(BaseHTTPRequestHandler):
 
  # Nhận GET request gửi lên.
  def do_GET(self):
        # SET http status trả về
        self.send_response(200)
 
        # Thiết lập header trả về
        self.send_header('Content-type','text/html')
        self.end_headers()
        # Data
        message = "Hoc Lap Trinh Tai Toidicode.com"
        # Write data dưới dạng utf8
        self.wfile.write(bytes(message, "utf8"))
        return

# cấu hình host và cổng port cho server
server_address = ('127.0.0.1', 8000)

# Khởi tạo server với thông số cấu hình ở trên.
httpd = HTTPServer(server_address, SimpleHTTP)

# Tiến hành chạy server
httpd.serve_forever()

Và bây giờ các bạn sử dụng comand line để chạy file chương trình và truy cập vào host và port đã cấu hình (của mình sẽ là 127.0.0.1:8000 tương đương với daykemit.edu.vn).

Python server

Kết quả thu được.

2, Lời kết.

Qua phần này mọi người về có thể tự thực hành thêm các chức năng khác cho server. Ví dụ như truy cập vào contact.html thì hiện ra contact, about.html thì hiện ra about,… (dùng thuộc tính path để làm). Hoặc viết nội dung ra file text rồi từ đó sử dụng đọc ghi file trong Python để render ra HTML.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *