Langsung ke konten utama

Membuat Web Server Dinamis dengan Python

Sebuah website adalah gugusan berdasarkan dokumen-dokumen yang berisi teks, gambar, video, atau audio. Beberapa dasawarsa lalu, seluruh website adalah website statis, semuanya hanya menampilkan konten yang sama pada seluruh pengguna. Pengunjung nir mampu berinteraksi secara eksklusif terhadap sesuatu website. 

Jaman sekarang, hampir semua website merupakan website dinamis. Semua pengunjung bisa berinteraksi secara langsung seperti menambah database, merubah ataupun menghapus data dari database dengan cara tertentu. 

Sebuah website baik itu dinamis atau statis mempunyai kegunaannya masing-masing. Tetapi pada pembuatan website bergerak maju akan lebih sulit dan memerlukan saat lebih dibanding membuatkan sebuah website statis. Kalau anda mau ngoding website dinamis, tentunya anda wajib  mengerti beberapa bahasa serverside misalnya PHP, ASP and masih banyak yg lainnya.

Lantas apakah ngoding website statis lebih gampang menurut ngoding web dinamis? belum tentu. Ngoding website statis pun semudah itu, memang lebih gampang menurut ngoding website dinamis, tetapi anda perlu tahu beberapa bahasa terutama buat front-end misalnya CSS, Javascript, ataupun teknik-teknik buat menciptakan UI/UX yang lebih menarik, dan berikut ini adalah perbedaan website statis dan dinamis.

Website Statis 

Dimulai berdasarkan pembuatan website tradisional, kenapa dianggap tradisional? Lantaran dulu orang jika ngoding website niscaya menciptakan sebuah website yang statis. Website statis mampu dibilang lebih baik pada hal performa menurut website dinamis. Kecepatan memuat yang dimiliki sebuah website statis juga keamanan yang lebih tahan menurut agresi hacker berakibat beberapa orang masih menentukan buat menciptakan sebuah website statis. 

Website statis pun lebih mudah pada proses pengembangan lantaran nir memerlukan fungsi-fungsi yang kompleks misalnya jika kita ngoding website dinamis. Tapi website statis juga punya kekurangannya sendiri. Problem primer dalam website statis, jika si pemilik website ingin memperbarui konten yang terdapat pada websitenya. Pemilik website wajib  merombak isi kodenya buat memperbarui isi kontennya. Kalau si pemilik bisa ngoding tidak masalah, akan tetapi jika tidak bisa? Terpaksa wajib kembali menghubungi desainer atau developer yang menyebarkan website untuknya.

Kekurangan lain merupakan bila menciptakan sebuah toko online yang memiliki banyak produk pada dalamnya. Si pemilik website wajib selalu mengupdate barangnya jika barang tadi habis atau tambah barang baru.


Website Dinamis

Website dinamis adalah sebuah website yang memungkinkan penggunanya buat berinteraksi secara langsung, pada artian pengguna bisa menambah, memodifikasi, ataupun menghapus konten pada pada sebuah website tanpa wajib  membuka struktur kode berdasarkan website tadi. Lantaran fungsi inilah, ngoding website dinamis sebagai lebih rumit daripada ngoding website statis.

Sebuah website dinamis memungkinkan buat menampilkan sebuah page website yang sama akan tetapi menggunakan tampilan yang tidak sama pada pengguna yang tidak sama pula. Dalam hal update juga, seseorang pemilik website tidak wajib jago ngoding, relatif memakai opsi berdasarkan fitur-fitur yang sudah dibuatkan dari si produsen website tadi. Website bergerak maju juga sanggup dibilang lebih powerful lantaran memiliki fitur misalnya login, daftar pengguna, proses pembayaran, dan lain sebagainya.

Tapi lantaran kaya fitur itulah proses ngoding website bergerak maju nir semudah menciptakan website statis. Diperlukan pemahaman bahasa pemrograman yang lebih, juga memerlukan porto yang lebih berdasarkan website statis pada hal pembuatan, maintenance, dan penambahan fitur lain misalnya pengolahan database. Dalam hal keamanan pun, website bergerak maju sanggup dikatakan relatif rentan terhadap agresi cyber. Fitur misalnya pembayaran dan registrasi data diri seorang yang sanggup saja diretas sebagai akibatnya datadata tadi bocor.


Langkah-langkah Membuat Web Server Dinamis dengan Python 

Sebelum memulai, pastikan komputer anda telah terinstall Python. Untuk memeriksa apakah Python sudah terinstal maka masukkan perintah berikut di terminal :

python3 -V

Jika Python sudah terinstall maka akan muncul tulisan versi Python.Berikut ini contohnya :

Python 3.8.10

Setelah install python anda bisa langsung membuat file 2  yaitu template.py dan tes.html pada code editor anda. Ini adalah implementasi dari source code dari algoritma seperti dibawah ini :

tes.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Hitung Matematika</h1>
{%
angka1 = 10
angka2 = 20
emit("Hasil = ")
emit(angka1*angka2)
%}
</body>
</html>

template.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import re

class Template():
"""Compile an text into a template function"""

def __init__(self, text):
self.delimiter = re.compile(r'{%(.*?)%}', re.DOTALL)
self.tokens = self.compile(text)

def compile(self, text):
tokens = []
for index, token in enumerate(self.delimiter.split(text)):
if index % 2 == 0:
# plain string
if token:
tokens.append((False, token.replace('%\}', '%}').replace('{\%', '{%')))
else:
# code block
# find out the indentation
lines = token.replace('{\%', '{%').replace('%\}', '%}').splitlines()
indent = min([len(l) - len(l.lstrip()) for l in lines if l.strip()])
realigned = '\n'.join(l[indent:] for l in lines)
tokens.append((True, compile(realigned, '<tempalte> %s' % realigned[:20], 'exec')))
return tokens


def render(self, context = None, **kw):
"""Render the template according to the given context"""
global_context = {}
if context:
global_context.update(context)
if kw:
global_context.update(kw)

# add function for output
def emit(*args):
result.extend([str(arg) for arg in args])
def fmt_emit(fmt, *args):
result.append(fmt % args)

global_context['emit'] = emit
global_context['fmt_emit'] = fmt_emit

# run the code
result = []
for is_code, token in self.tokens:
if is_code:
exec(token, global_context)
else:
result.append(token)
return ''.join(result)

# make instance callable
#__call__ = render
file = open("tes.html", 'r')
html = file.read()
file.close()
template = Template(html)
hasil = template.render()
print(hasil)

Untuk menjalankan source code diatas anda bisa menjalankan dengan perintah "python3 template.py" seperti contoh dibawah ini :

Pembahasan website dinamis ini adalah menjalankan program pada tes.html di dalam program template.py yang sangat berguna ketika membangun website dinamis ketika terdapat perubahan tidak perlu mematikan program yang berjalan, berbeda dengan website statis yang harus mematikan program ketika ingin melakukan penambahan program.

Komentar

Postingan populer dari blog ini

Membuat Halaman Profil Konsumen Dengan NextJS & Bulma

Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu halaman HTML dan file JavaScript pada...

Membuat Database Menggunakan Aplikasi Excel ~ Part 4

Pengertian Normalisasi Database Normalisasi database adalah proses pengelompokan atribut data yang membentuk entitas sederhana, nonredundant, fleksibel, dan mudah beradaptasi. Sehingga dapat dipastikan bahwa database yang dibuat berkualitas baik. Tujuan Normalisasi Database Tujuan utama dari normalisasi database adalah: Menghilangkan dan mengurangi redudansi data. Memastikan dependensi data (data berada pada tabel yang tepat). Jika sebuah database belum dinormalisasi, kemungkinan terburuk yang akan merugikan sistem adalah: INSERT Anomali Situasi dimana tidak memungkinkan untuk memasukkan beberapa jenis data secara langsung di database. UPDATE Anomali Situasi dimana nilai yang diubah mengakibatkan ketidakkonsistenan database, artinya data yang diubah tidak sesuai dengan yang diinginkan. DELETE Anomali Penghapusan data tidak sesuai yang diharapkan, artinya data yang seharusnya tidak terhapus malah terhapus. Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga ...

Design Sprint Alur Fitur Dari Wlijo

Design Sprint Fitur Wlijo      Wlijo adalah platform yang menghubungankan antara petani, pedagang sayur dan konsumen melalui aplikasi belanja sayur online. Saat ini wlijo masih dalam tahap pengembangan dan perbaikan. Untuk membantu proses pengembangan wlijo agar bisa selesai sesuai waktu yang ditargetkan diperlukannya sebuah metode efektif yakni metode design sprint. Apa Itu Metode Desain Sprint ?     Design sprint merupakan sebuah metode 5 langkah kerja untuk membantu perusahaan agar dapat membuat suatu produk berdasarkan design thinking dengan waktu lima hari. Design thinking sendiri merupakan proses yang mencakup proses strategis, kognitif, dan praktis. Design sprint sendiri dibuat pada tahun 2010 oleh seseorang yang berasal dari Google Venture bernama Jake Knapp. Sampai saat ini, sudah banyak perusahaan yang memakai design tersebut sampai keseluruh dunia.      Konsep kerjanya yaitu menggunakan waktu selama lima hari untuk membangun suatu ...