Skrip Python Web Server: Implementasi Dasar dan Standar WSGI

Memahami Peran Python dalam Web Server

Sebuah peladen web (web server) memiliki fungsi utama untuk memenuhi permintaan klien di World Wide Web. Dalam ekosistem Python, komunikasi antara server web dan aplikasi web diatur melalui standar yang disebut Python Web Server Gateway Interface (WSGI), yang secara spesifik didefinisikan dalam PEP 333. Standar ini memastikan bahwa skrip Python dapat berjalan secara konsisten di berbagai jenis server web.

Implementasi Dasar Web Server dengan Python

Python menyediakan modul bawaan http.server yang memungkinkan pengembang untuk menjalankan server web sederhana tanpa perlu menginstal pustaka pihak ketiga. Berikut adalah contoh skrip dasar untuk menjalankan server lokal:

import http.server
import socketserver

PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print(f"Server berjalan pada port {PORT}")
    httpd.serve_forever()

Langkah Menjalankan Skrip

  1. Simpan kode di atas ke dalam file bernama server.py.
  2. Buka terminal atau command prompt pada direktori file tersebut.
  3. Jalankan perintah python server.py.
  4. Akses melalui browser di alamat http://localhost:8000.

Tabel Komparasi Metode Server Python

MetodeKegunaanStandar
http.serverPengembangan & DebuggingBawaan (Built-in)
WSGI (PEP 333)Produksi & Aplikasi WebStandar Antarmuka
PyQGIS PluginOtomasi GISEkstensi Aplikasi

Pentingnya Standar WSGI (PEP 333)

Bagi pengembang yang membangun aplikasi web skala besar, penggunaan http.server tidak disarankan untuk lingkungan produksi. Standar PEP 333 memungkinkan aplikasi Python untuk berkomunikasi dengan server web yang lebih tangguh seperti Gunicorn atau uWSGI. Hal ini memisahkan logika aplikasi dari detail teknis server, sehingga aplikasi Anda lebih portabel dan mudah diskalakan.

Tips Troubleshooting

  • Port Terpakai: Jika muncul error Address already in use, pastikan tidak ada proses lain yang menggunakan port tersebut atau ubah variabel PORT ke angka lain (misal: 8080).
  • Izin Akses: Pastikan skrip memiliki izin baca pada direktori tempat file web disimpan.
  • Lingkungan Virtual: Selalu gunakan virtual environment untuk mengelola dependensi proyek agar tidak bentrok dengan pustaka sistem.