Pengarang: Trix Cyrus
Mari jadikan pelayan ular sawa dihoskan daripada peranti anda.
Bermula..
buat direktori bernama pelayan
mkdir server
buat fail bernama server.py
nano server.py
tampal kod di bawah.
import http.server import socketserver import logging import os import threading from urllib.parse import urlparse, parse_qs PORT = 8080 DIRECTORY = "www" logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') class MyHandler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=DIRECTORY, **kwargs) def log_message(self, format, *args): logging.info("%s - %s" % (self.client_address[0], format % args)) def do_GET(self): parsed_path = urlparse(self.path) query = parse_qs(parsed_path.query) # Custom logic for different routes if parsed_path.path == '/': self.serve_file("index.html") elif parsed_path.path == '/about': self.respond_with_text("<h1>About Us</h1><p>This is a custom Python server.</p>") elif parsed_path.path == '/greet': name = query.get('name', ['stranger'])[0] self.respond_with_text(f"<h1>Hello, {name}!</h1>") else: self.send_error(404, "File Not Found") def do_POST(self): content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length) logging.info("Received POST data: %s", post_data.decode('utf-8')) self.respond_with_text("<h1>POST request received</h1>") def serve_file(self, filename): if os.path.exists(os.path.join(DIRECTORY, filename)): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() with open(os.path.join(DIRECTORY, filename), 'rb') as file: self.wfile.write(file.read()) else: self.send_error(404, "File Not Found") def respond_with_text(self, content): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(content.encode('utf-8')) class ThreadedHTTPServer(socketserver.ThreadingMixIn, http.server.HTTPServer): daemon_threads = True # Handle requests in separate threads def run_server(): try: with ThreadedHTTPServer(("", PORT), MyHandler) as httpd: logging.info(f"Serving HTTP on port {PORT}") logging.info(f"Serving files from directory: {DIRECTORY}") httpd.serve_forever() except Exception as e: logging.error(f"Error starting server: {e}") except KeyboardInterrupt: logging.info("Server stopped by user") if __name__ == "__main__": server_thread = threading.Thread(target=run_server) server_thread.start() server_thread.join()
buat direktori bernama www
mkdir www
kini navigasi ke direktori www
cd www
buat fail bernama index.html
nano index.html
tampal kod di bawah di dalamnya
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Python Simple Server</title> </head> <body> <h1>Welcome to My Python Server!</h1> <p>This is a simple web server running on your local device.</p> </body> </html>
Langkah 2: Uji Laluan
Selepas menjalankan skrip yang diubah suai, pergi ke:
http://localhost:8080/ untuk melihat halaman utama.
http://localhost:8080/about untuk melihat halaman tentang.
http://localhost:8080/greet?name=Trix
Untuk mana-mana laluan lain, pelayan akan mengembalikan ralat 404.
di bawah ialah struktur direktori
server/ ├── server.py └── www/ └── index.html
Menjalankan Pelayan pada Peranti Jauh
Bagaimana jika anda ingin mengakses pelayan Python anda daripada peranti lain pada rangkaian yang sama? Anda boleh melakukan ini dengan mudah dengan mencari alamat IP tempatan mesin yang menjalankan pelayan dan menggunakannya bukannya localhost.
Langkah 1: Cari Alamat IP Anda
gunakan arahan seperti
ipconfig
ifconfig
Cari alamat IPv4 anda (seperti 192.168.x.x).
Langkah 2. Ubah Suai Skrip Pelayan Anda
Dalam skrip pelayan anda, gantikan baris tempat pelayan dimulakan:
with ThreadedHTTPServer(("", PORT), MyHandler) as httpd:
Tukar kepada:
with ThreadedHTTPServer(("0.0.0.0", PORT), MyHandler) as httpd:
Langkah 3: Akses Pelayan daripada Peranti Lain
Kini, menggunakan alamat IP yang anda temui sebelum ini, anda boleh mengakses pelayan daripada mana-mana peranti pada rangkaian yang sama dengan pergi ke http://:8080 dalam penyemak imbas.
Dan Semua Set
~TrixSec
Atas ialah kandungan terperinci Cara Mengubah Peranti Anda Menjadi Pelayan Mudah Menggunakan Python.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!