✅ 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