13. Pengembangan Web dengan Python (Flask/Django)

 

✅ 13. Pengembangan Web dengan Python (Flask/Django)

📌 Tujuan:

  • Memahami bagaimana Python digunakan untuk membangun aplikasi web.
  • Menggunakan Flask atau Django sebagai framework untuk mengembangkan aplikasi web.
  • Membuat aplikasi sederhana dengan CRUD (Create, Read, Update, Delete).

📌 Framework yang digunakan:
Flask → Ringan, cocok untuk aplikasi sederhana & cepat dipelajari.
Django → Lebih lengkap, cocok untuk aplikasi besar dengan fitur bawaan seperti autentikasi & admin panel.

📌 Instalasi Framework:

pip install flask django

1️⃣ Pengenalan Web Framework

Framework web membantu kita membuat aplikasi berbasis web tanpa harus membuat semuanya dari nol.
Flask & Django mempermudah kita dalam membuat API, mengelola database, serta merancang tampilan web.

🔹 Flask lebih fleksibel, cocok untuk proyek kecil hingga menengah.
🔹 Django memiliki banyak fitur bawaan, cocok untuk proyek besar.


2️⃣ Routing & Template Engine

📌 Routing adalah bagaimana sebuah URL dikaitkan dengan fungsi tertentu dalam aplikasi web.
📌 Template Engine memungkinkan kita membuat tampilan HTML yang dinamis menggunakan data dari backend.

🔹 Contoh Aplikasi Web Sederhana dengan Flask

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template("index.html", title="Home")

if __name__ == '__main__':
    app.run(debug=True)

📌 Penjelasan:
@app.route('/') → Menentukan URL utama (/) yang akan memanggil fungsi home().
render_template("index.html") → Menggunakan template HTML untuk menampilkan halaman.
app.run(debug=True) → Menjalankan server dengan mode debug aktif.

🔹 Struktur Folder Flask

/myapp
 ├── app.py  (Kode utama Flask)
 ├── templates/
 │    ├── index.html  (File HTML utama)
 ├── static/
 │    ├── style.css  (CSS untuk tampilan)

3️⃣ CRUD dengan Flask/Django

CRUD (Create, Read, Update, Delete) adalah operasi utama yang dilakukan dalam aplikasi berbasis database.

🔹 CRUD dengan Flask (Menggunakan SQLite)

from flask import Flask, request, render_template, redirect, url_for
import sqlite3

app = Flask(__name__)

# Fungsi untuk membuat database
def init_db():
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS produk (id INTEGER PRIMARY KEY, nama TEXT, harga INTEGER)''')
    conn.commit()
    conn.close()

init_db()

@app.route('/')
def index():
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM produk")
    data = cursor.fetchall()
    conn.close()
    return render_template('index.html', produk=data)

@app.route('/tambah', methods=['POST'])
def tambah():
    nama = request.form['nama']
    harga = request.form['harga']
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()
    cursor.execute("INSERT INTO produk (nama, harga) VALUES (?, ?)", (nama, harga))
    conn.commit()
    conn.close()
    return redirect(url_for('index'))

if __name__ == '__main__':
    app.run(debug=True)

📌 Penjelasan:
sqlite3 digunakan untuk database sederhana yang menyimpan data produk.
@app.route('/') → Menampilkan daftar produk.
@app.route('/tambah', methods=['POST']) → Menambahkan produk baru.
Database dibuat secara otomatis jika belum ada.


🔹 CRUD dengan Django

📌 Django sudah memiliki fitur ORM (Object Relational Mapping) sehingga lebih mudah mengelola database.

1️⃣ Buat Proyek Django:

django-admin startproject myproject
cd myproject
python manage.py startapp produk

2️⃣ Tambahkan Model Database di produk/models.py

from django.db import models

class Produk(models.Model):
    nama = models.CharField(max_length=100)
    harga = models.IntegerField()

3️⃣ Migrasikan Database:

python manage.py makemigrations
python manage.py migrate

4️⃣ Buat CRUD Views di produk/views.py

from django.shortcuts import render, redirect
from .models import Produk

def index(request):
    produk = Produk.objects.all()
    return render(request, "index.html", {"produk": produk})

def tambah(request):
    if request.method == "POST":
        nama = request.POST['nama']
        harga = request.POST['harga']
        Produk.objects.create(nama=nama, harga=harga)
        return redirect('index')
    return render(request, "tambah.html")

5️⃣ Tambahkan URL Routing di produk/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('tambah/', views.tambah, name='tambah'),
]

📌 Penjelasan:
Produk.objects.all() → Mengambil semua data produk dari database.
Produk.objects.create(nama=nama, harga=harga) → Menambahkan produk baru.
Django memiliki fitur Admin Panel bawaan!


📌 Kesimpulan

Flask cocok untuk proyek kecil & lebih fleksibel.
Django cocok untuk proyek besar dengan fitur bawaan yang lengkap.
CRUD memungkinkan kita mengelola database dengan mudah.
Selanjutnya, kita bisa membuat dashboard admin & menghubungkan API dengan frontend!

🚀 Mau lanjut ke pengembangan API dan integrasi dengan aplikasi AI?

Tidak ada komentar:

Posting Komentar