Cách sử dụng Python SimpleHTTPServer

How Use Python Simplehttpserver



Nhiệm vụ chính của máy chủ web là xử lý các yêu cầu HTTP từ máy khách. Nó đợi các yêu cầu HTTP đến từ địa chỉ IP và số cổng cụ thể, xử lý yêu cầu và gửi lại phản hồi của khách hàng. Python sử dụng SimpleHTTPServer để tạo một máy chủ web ngay lập tức và dễ dàng phục vụ nội dung của tệp từ máy chủ. Nó cũng có thể được sử dụng để chia sẻ tệp. Đối với điều này, bạn phải kích hoạt mô-đun này với vị trí của các tệp có thể chia sẻ. Mô-đun này đi kèm với trình thông dịch Python. Bạn không cần phải cài đặt nó. Vì mô-đun này được hợp nhất với http.server mô-đun trong python3, vì vậy bạn phải chạy http.server để chạy máy chủ web trong python3. Cách máy chủ web có thể được sử dụng để xử lý yêu cầu HTTP và chia sẻ tệp, đã được trình bày trong hướng dẫn này.

Chạy Máy chủ Web từ thiết bị đầu cuối

Chạy lệnh sau để chạy máy chủ web từ thiết bị đầu cuối. Nếu không có số cổng nào được xác định trong lệnh, máy chủ web sẽ bắt đầu ở cổng 8000 theo mặc định.







$ python3 -m http.người phục vụ



Kết quả sau sẽ xuất hiện nếu máy chủ web được khởi động đúng cách. CTRL + C được nhấn để dừng máy chủ.




Chạy lệnh sau để khởi động máy chủ web ở cổng 8080.





$ python3 -m http.người phục vụ 8080

Kết quả sau sẽ xuất hiện nếu máy chủ web được khởi động ở cổng 8080.



Chạy Máy chủ Web bằng tập lệnh Python

Chạy các lệnh sau để tạo một thư mục có tên Web và đi đến thư mục. Tất cả các tệp script và tệp HTML của hướng dẫn này sẽ được tạo bên trong thư mục này.

$ mkdir web

$đĩa CDWeb

Tạo một tệp HTML có tên testHTML.html bên trong Web thư mục với tập lệnh sau. Tệp này sẽ được phục vụ từ máy chủ web sau đó.

testHTML.html

< html >

< cái đầu >

< chức vụ >

Kiểm tra Máy chủ Web Python

</ chức vụ >

</ cái đầu >

< cơ thể người >

< Trung tâm >

< img src='logo.jpeg' mọi điều='Không tìm thấy hình ảnh'/>

< h2 Phong cách='màu xanh lá cây'>Xin chúc mừng! Máy chủ Web của bạn đang chạy thành công.</ h2 >

< P >Chuyến thăm< đến href='www.linuxhint.com'>LinuxHint.com</ đến >để biết thêm hướng dẫn về Python</ P >

</ Trung tâm >

</ cơ thể người >

</ html >

Ví dụ-1: Chạy máy chủ web theo số cổng cụ thể

Tạo tệp python với tập lệnh sau để chạy máy chủ web ở cổng 8008. http.server mô-đun đã được nhập để chạy máy chủ web và SocketServer mô-đun đã được nhập để xử lý yêu cầu HTTP đến từ cổng 8080. Một đối tượng có tên Người xử lý đã được tạo để xử lý các yêu cầu HTTP. mãi mãi() hàm được gọi để chạy máy chủ web. Không có điều kiện chấm dứt nào đã được thêm vào tập lệnh. Vì vậy, tập lệnh sẽ tạo ra lỗi khi người dùng cố gắng dừng máy chủ.

# Nhập mô-đun máy chủ

nhập khẩuhttp.người phục vụ

# Nhập mô-đun SocketServer

nhập khẩuổ cắm


# Đặt số cổng

Hải cảng= 8080

# Tạo đối tượng để xử lý các yêu cầu HTTP

Người xử lý=http.người phục vụ.SimpleHTTPRequestHandler


# Chạy máy chủ mãi mãi để xử lý các yêu cầu HTTP

vớiổ cắm.TCPServer(('',Hải cảng),Người xử lý) nhưhttpd:

in('Máy chủ Web đang chạy tại http: // localhost:% s'%Hải cảng)

httpd.serve_forever()

Đầu ra

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên.


Danh sách các tệp và thư mục của vị trí tập lệnh sẽ được hiển thị nếu URL sau được thực thi từ trình duyệt.

http: // localhost: 8080

Nếu người dùng nhấn CTRL + C từ thiết bị đầu cuối hoặc nhấn nút dừng từ trình chỉnh sửa PyCharm, thông báo lỗi sau sẽ được hiển thị. Vấn đề này đã được giải quyết trong ví dụ tiếp theo của hướng dẫn này.

Ví dụ-2: Chạy máy chủ web với số cổng được xác định bằng dòng lệnh

Tạo tệp python với tập lệnh sau để chạy máy chủ web tại cổng cụ thể nếu đối số dòng lệnh cung cấp số cổng; nếu không, 5000 sẽ được sử dụng làm cổng mặc định. sys mô-đun đã được nhập trong tập lệnh để đọc các giá trị đối số dòng lệnh. thử ngoại trừ khối đã được thêm vào tập lệnh để xử lý lỗi khi người dùng cố gắng dừng máy chủ. Nếu ngoại lệ KeyboardInterrupt xuất hiện sau khi chạy máy chủ, thì gần() hàm sẽ được gọi để dừng máy chủ web.

# Nhập mô-đun máy chủ

nhập khẩuhttp.người phục vụ

# Nhập mô-đun SocketServer

nhập khẩuổ cắm

# Nhập mô-đun hệ thống

nhập khẩu sys


cố gắng:

# Đặt số cổng

nếu như sys.argv[1:]:

Hải cảng= NS(sys.argv[1])

khác:

Hải cảng= 5000

# Đặt địa chỉ IP

địa chỉ máy chủ= ('127.0.0.1',Hải cảng)

# Tạo đối tượng để xử lý các yêu cầu HTTP

Người xử lý=http.người phục vụ.SimpleHTTPRequestHandler


# Chạy máy chủ web mãi mãi để xử lý các yêu cầu HTTP

vớiổ cắm.TCPServer(('',Hải cảng),Người xử lý) nhưhttpd:

in('Máy chủ Web đang chạy tại http: // localhost:% s'%Hải cảng)

httpd.serve_forever()

# Dừng máy chủ

ngoại trừ Bàn phím ngắt:

httpd.server_close()

in('Máy chủ bị dừng.')

Đầu ra

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên mà không có giá trị đối số dòng lệnh.

Kết quả sau sẽ xuất hiện nếu chạy tệp HTML được tạo ở bước trước từ máy chủ web.

Mở hộp thoại cấu hình từ menu Chạy của trình chỉnh sửa PyCharm để đặt giá trị đối số dòng lệnh. Trường tham số được sử dụng để đặt đối số dòng lệnh và 3000 được đặt ở đây làm giá trị đối số.

Kết quả sau sẽ xuất hiện nếu bạn chạy lại tập lệnh sau khi đặt giá trị đối số.

Ví dụ-3: Chạy máy chủ web với tệp HTML

Tạo tệp python với tập lệnh sau để chạy máy chủ web bằng cách xác định tệp HTML cho URL cơ sở. Tên máy chủ và số cổng đã được xác định ở đầu tập lệnh. PythonServer lớp đã định nghĩa trong tập lệnh để hiển thị tệp HTML trong trình duyệt khi máy chủ web bắt đầu chạy.

# Nhập mô-đun máy chủ

nhập khẩuhttp.người phục vụ


# Đặt tên máy chủ

TỔ CHỨC= 'localhost'

# Đặt số cổng

HẢI CẢNG= 4000


# Xác định lớp để hiển thị trang chỉ mục của máy chủ web

lớpPythonServer(http.người phục vụ.SimpleHTTPRequestHandler):

phản đốido_GET(bản thân):

nếu như bản thân.con đường == '/':

bản thân.con đường = 'testHTML.html'

trở lạihttp.người phục vụ.SimpleHTTPRequestHandler.do_GET(bản thân)


# Khai báo đối tượng của lớp

máy chủ web=http.người phục vụ.HTTPServer((TỔ CHỨC,HẢI CẢNG),PythonServer)


# In URL của máy chủ web

in('Máy chủ đã khởi động http: //% s:% s'%(TỔ CHỨC,HẢI CẢNG))


cố gắng:

# Chạy máy chủ web

máy chủ web.serve_forever()

ngoại trừ Bàn phím ngắt:

# Dừng máy chủ web

máy chủ web.server_close()

in('Máy chủ bị dừng.')

Đầu ra

Đầu ra sau đây sẽ xuất hiện khi thực thi tập lệnh trên.

Trang sau sẽ xuất hiện trong trình duyệt nếu URL cơ sở của trình duyệt của máy chủ web thực thi.

Phần kết luận

Các cách khác nhau để triển khai máy chủ web bằng cách sử dụng http. người phục vụ mô-đun đã hiển thị trong hướng dẫn này để giúp người dùng python tạo một máy chủ web đơn giản bằng Python.