Struktur Bagian Membuat Aplikasi WSGI - Blog Rizki M Farhan
Skip to content Skip to sidebar Skip to footer

Struktur Bagian Membuat Aplikasi WSGI

 Struktur Bagian Membuat Aplikasi WSGI

Struktur Bagian Membuat Aplikasi WSGI

Untuk mendemonstrasikan cara pembuatan aplikasi WSGI, kita tidak akan menggunakan software lain selain Python. Sejak versi 2.5, Python telah menyediakan paket wsgiref yang dapat digunakan sebagai stand-alone server untuk menguji jalannya aplikasi WSGI. Dalam contoh ini, kita akan menggunakan wsgiref. Contoh aplikasi WSGI paling sederhana dapat ditulis menggunakan kode berikut. 


####################################
# Nama file : ~/demowsgi/hello.py
####################################

from wsgiref.simple_server import make_server

def application(environ, start_response):
body = '<h2>Hello WSGI</h2>
status = '200 OK'
headers = [
('Content-Type', 'text/html'),
('Content-Length', str(len(body)))
]
start_response(status, headers)
return [body]

if __name__ == '__main__':
server = make_server('localhost', 5000,application)
server.serve_forever()

Buat direktori kerja, misalnya /home/nama-anda/demowsgi, lalu simpan kode di atas dengan nama hello.py dan tempatkan di dalam direktori kerja. Perhatikan baris kode berikut :

from wsgiref.simple_server import make_server

Baris kode di atas digunakan untuk mengimpor fungsi make_server() yang dissediakan oleh Pytthon. Fungsi ini terdapat di dalam paket wsgiref. Baris ini diperlukan karena pada contoh kali ini kita hanya akan menggunakan web server dari pihak ketiga.

def application(renviron, start_response) :
body = '<h2>Hello WSGI</h2>
status = '200 OK'
headers = [
('Content-Type', 'text/html'),
('Content-Length', str(len(body)))
]
start_response(status, headers)
return (body)

Fungsi yang didefinisikan di atas akan digunakan sebagai parameter ketiga pada saat kita memanggil fungsi make_server(). Fungsi application() memiliki dua parameter : environ dan start_response. Parameter environ menujuk ke objek dictionary yang berisi variabel sistem, sedangkan parameter start_response adalah fungsi callback yang disediakan oleh server. Fungsi ini memiliki 2 (dua) parameter), yaitu status HTTP dan header. Nilai ' 200 OK ' adalah status HTTP yang menandakan bahwa halaman yang diminta tersedia atau ditemukan di dalam web server. Fungsi application() harus mengembalikan objek yang bersifat iterable. Kita dapat menggunakan list untuk keperluan ini. Dengan demikian, kita perlu menulis return [body], bukan return body.

Untuk melakukan instansiasi server, kita perlu memanggil fungsi make_server() dengan melewatkan alamat IP atau nama komputer tempat server berada, nomor port dan fungsi application() yang telah kita buat di atas.


server = make_server('localhost',5000,application)

Pada contoh di atas, kita menggunakan localhost (bisa mengganti dngan IP lokal : '127.0.0.1') dan port 5000.

Agar ketika aplikasi dijalankan server dapat WSGI di aktifkan, kita dapat menggunakan metode serve_forever() dari objek server, seperti berikut :

server.serve_forver()

Dengan cara seperti ini, server WSGI dapat menangkap atau melayani permintaan client yang dikirimkan melalui web browser. Jika ingin menulis HTML, secara lengkap, kode di atas dapat ditulis seperti berikut :

def application(renviron, start_response) :
body = '''
<html>
<head><title>Demo WSGI</title></head>
<body>
</html>
'''
status = '200 OK'
headers = [
('Content-Type', 'text/html'),
('Content-Length', str(len(body)))
]
start_response(status, headers)
return (body)

Rizki M Farhan
Rizki M Farhan Saya adalah seorang penulis konten artikel untuk belajar yang membahas Teknologi Layanan Pendidikan Internet.