Cara Setting Database di Django: Panduan Lengkap

 

Django adalah framework web Python yang terkenal karena kemampuannya dalam memudahkan pembuatan aplikasi web. Salah satu fitur utama Django adalah pengelolaan database menggunakan ORM (Object-Relational Mapping), yang memungkinkan pengembang untuk berinteraksi dengan database menggunakan objek Python, tanpa harus menulis query SQL secara langsung. Django mendukung berbagai jenis database, termasuk SQLite, PostgreSQL, MySQL, dan Oracle.

Dalam artikel ini, kita akan membahas cara setting database di Django dari awal, termasuk pengaturan database di settings.py, migrasi, dan penggunaan database dengan model Django.

1. Menyiapkan Database untuk Django

Sebelum memulai pengaturan database di Django, Anda perlu memastikan bahwa Anda memiliki database yang siap digunakan. Django secara default mengonfigurasi proyek untuk menggunakan SQLite, yang sudah terintegrasi dengan Django dan tidak memerlukan pengaturan tambahan. Namun, jika Anda ingin menggunakan database lain seperti PostgreSQL atau MySQL, Anda perlu melakukan beberapa pengaturan.

1.1. Menggunakan SQLite (Default)

SQLite adalah database ringan yang disertakan dalam Django secara default. Database SQLite tidak memerlukan instalasi atau pengaturan tambahan karena file database akan disimpan di dalam proyek Anda. Pengaturan ini cocok untuk pengembangan atau aplikasi dengan skala kecil.

Di file settings.py, pengaturan database untuk SQLite sudah tersedia secara default seperti berikut:

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',  # Nama file database SQLite
    }
}

Pada pengaturan ini, file database db.sqlite3 akan disimpan di direktori utama proyek.

1.2. Menggunakan PostgreSQL

Jika Anda ingin menggunakan PostgreSQL sebagai database untuk proyek Django Anda, Anda perlu menginstal driver PostgreSQL terlebih dahulu, yang dikenal sebagai psycopg2. Anda bisa menginstalnya dengan menjalankan perintah berikut:

pip install psycopg2

Setelah itu, Anda perlu mengonfigurasi pengaturan database di settings.py agar sesuai dengan PostgreSQL. Berikut adalah pengaturan yang perlu Anda tambahkan:

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'nama_database',  # Ganti dengan nama database Anda
        'USER': 'nama_user',  # Ganti dengan nama pengguna PostgreSQL
        'PASSWORD': 'kata_sandi',  # Ganti dengan kata sandi pengguna PostgreSQL
        'HOST': 'localhost',  # Atau alamat IP server PostgreSQL jika tidak menggunakan localhost
        'PORT': '5432',  # Port default untuk PostgreSQL
    }
}

Pastikan Anda sudah membuat database dan pengguna di PostgreSQL dengan hak akses yang sesuai. Jika belum, Anda bisa membuatnya melalui terminal PostgreSQL.

1.3. Menggunakan MySQL

Jika Anda ingin menggunakan MySQL, Anda juga perlu menginstal driver MySQL untuk Python, yaitu mysqlclient. Anda bisa menginstalnya dengan menjalankan perintah berikut:

pip install mysqlclient

Setelah menginstal mysqlclient, Anda perlu mengonfigurasi pengaturan database di settings.py seperti berikut:

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'nama_database',  # Ganti dengan nama database Anda
        'USER': 'nama_user',  # Ganti dengan nama pengguna MySQL
        'PASSWORD': 'kata_sandi',  # Ganti dengan kata sandi pengguna MySQL
        'HOST': 'localhost',  # Atau alamat IP server MySQL jika tidak menggunakan localhost
        'PORT': '3306',  # Port default untuk MySQL
    }
}

Sama seperti PostgreSQL, pastikan Anda sudah membuat database dan pengguna di MySQL dengan hak akses yang sesuai.

2. Melakukan Migrasi untuk Menyinkronkan Database

Setelah pengaturan database selesai, langkah selanjutnya adalah menjalankan migrasi untuk menyinkronkan model dengan database. Di Django, migrasi adalah proses untuk membuat atau memperbarui struktur tabel database berdasarkan model yang didefinisikan dalam aplikasi.

2.1. Membuat Migrasi

Django menggunakan model untuk menggambarkan struktur tabel dalam database. Model adalah kelas Python yang mengatur bagaimana data disimpan dalam tabel. Setiap perubahan pada model (misalnya menambah kolom baru atau membuat tabel baru) memerlukan migrasi.

Untuk membuat migrasi pertama, jalankan perintah berikut:

python manage.py makemigrations

Perintah ini akan membuat file migrasi di folder migrations/ dalam aplikasi Django Anda. File migrasi ini berisi perintah untuk mengubah struktur database agar sesuai dengan model yang didefinisikan.

2.2. Menjalankan Migrasi

Setelah migrasi dibuat, Anda perlu menerapkannya ke database dengan menjalankan perintah berikut:

python manage.py migrate

Perintah ini akan menjalankan semua migrasi yang belum diterapkan dan menyinkronkan database Anda dengan struktur tabel yang sesuai dengan model.

3. Mendefinisikan Model untuk Database

Model adalah cara Django mendefinisikan struktur tabel dalam database. Sebagai contoh, jika Anda ingin membuat aplikasi yang menyimpan data pengguna, Anda bisa mendefinisikan model User seperti berikut:

# models.py

from django.db import models

class User(models.Model):
    username = models.CharField(max_length=50, unique=True)
    email = models.EmailField()
    password = models.CharField(max_length=100)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.username

Penjelasan model di atas:

  • CharField: Digunakan untuk kolom yang menyimpan teks pendek seperti nama pengguna atau password.
  • EmailField: Digunakan untuk kolom yang menyimpan alamat email.
  • DateTimeField: Digunakan untuk kolom yang menyimpan tanggal dan waktu.
  • auto_now_add=True: Akan otomatis mengisi kolom created_at dengan waktu saat objek pertama kali dibuat.

Setelah mendefinisikan model, Anda perlu menjalankan migrasi agar model ini disinkronkan dengan database. Jalankan perintah berikut:

python manage.py makemigrations
python manage.py migrate

Setelah migrasi diterapkan, tabel User akan dibuat di database Anda.

4. Menambahkan Aplikasi ke INSTALLED_APPS

Setelah membuat model dalam aplikasi Django, Anda perlu menambah aplikasi tersebut ke pengaturan INSTALLED_APPS di settings.py agar Django dapat mengenali aplikasi tersebut.

# settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  # Menambahkan aplikasi ke dalam daftar
]

Gantilah myapp dengan nama aplikasi Django yang Anda buat.

5. Menggunakan Database di Views dan Template

Setelah Anda mendefinisikan model dan melakukan migrasi, Anda dapat mulai menggunakan model tersebut untuk menyimpan, mengambil, dan mengelola data dalam database. Berikut adalah contoh penggunaan model User dalam views untuk mengambil data dari database dan menampilkannya di template:

5.1. Views

Untuk mengambil data dari database, Anda bisa menggunakan QuerySet Django. Berikut adalah contoh views untuk mengambil semua data pengguna:

# views.py

from django.shortcuts import render
from .models import User

def user_list(request):
    users = User.objects.all()  # Mengambil semua data pengguna
    return render(request, 'user_list.html', {'users': users})

5.2. Template

Setelah data diambil di views, Anda bisa mengirimkannya ke template untuk ditampilkan. Berikut adalah contoh template untuk menampilkan daftar pengguna:

<!-- user_list.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>User List</title>
</head>
<body>
    

User List

    {% for user in users %}
  • {{ user.username }} ({{ user.email }})
  • {% empty %}
  • No users available.
  • {% endfor %}
</body> </html>

Dengan cara ini, Anda bisa mengambil dan menampilkan data dari database menggunakan model Django.

6. Pengelolaan Database di Admin Django

Django juga menyediakan antarmuka admin untuk memudahkan pengelolaan data di database. Untuk menggunakan fitur admin Django, Anda perlu menambahkan model Anda ke dalam admin.py aplikasi.

# admin.py

from django.contrib import admin
from .models import User

admin.site.register(User)

Setelah itu, Anda bisa mengakses antarmuka admin di http://127.0.0.1:8000/admin/ dan mengelola data User melalui antarmuka grafis.

7. Kesimpulan

Pengaturan database di Django relatif mudah dan fleksibel. Dengan menggunakan Django ORM, Anda dapat dengan cepat mengonfigurasi dan mengelola database tanpa harus menulis query SQL secara manual. Django mendukung berbagai jenis database seperti SQLite, PostgreSQL, MySQL, dan Oracle, dan menyediakan alat untuk migrasi dan manajemen struktur tabel.

Dengan pemahaman dasar tentang cara mengonfigurasi dan menggunakan database di Django, Anda bisa membangun aplikasi web yang dinamis dan menyimpan data dengan cara yang efisien.

 

 

Dadang Heksa

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas.

8 Comments

Georgia Reader Reply

Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.

Aron Alvarado Reply

Ipsam tempora sequi voluptatem quis sapiente non. Autem itaque eveniet saepe. Officiis illo ut beatae.

Lynda Small Reply

Enim ipsa eum fugiat fuga repellat. Commodi quo quo dicta. Est ullam aspernatur ut vitae quia mollitia id non. Qui ad quas nostrum rerum sed necessitatibus aut est. Eum officiis sed repellat maxime vero nisi natus. Amet nesciunt nesciunt qui illum omnis est et dolor recusandae. Recusandae sit ad aut impedit et. Ipsa labore dolor impedit et natus in porro aut. Magnam qui cum. Illo similique occaecati nihil modi eligendi. Pariatur distinctio labore omnis incidunt et illum. Expedita et dignissimos distinctio laborum minima fugiat. Libero corporis qui. Nam illo odio beatae enim ducimus. Harum reiciendis error dolorum non autem quisquam vero rerum neque.

Sianna Ramsay Reply

Et dignissimos impedit nulla et quo distinctio ex nemo. Omnis quia dolores cupiditate et. Ut unde qui eligendi sapiente omnis ullam. Placeat porro est commodi est officiis voluptas repellat quisquam possimus. Perferendis id consectetur necessitatibus.

Nolan Davidson Reply

Distinctio nesciunt rerum reprehenderit sed. Iste omnis eius repellendus quia nihil ut accusantium tempore. Nesciunt expedita id dolor exercitationem aspernatur aut quam ut. Voluptatem est accusamus iste at. Non aut et et esse qui sit modi neque. Exercitationem et eos aspernatur. Ea est consequuntur officia beatae ea aut eos soluta. Non qui dolorum voluptatibus et optio veniam. Quam officia sit nostrum dolorem.

Kay Duggan Reply

Dolorem atque aut. Omnis doloremque blanditiis quia eum porro quis ut velit tempore. Cumque sed quia ut maxime. Est ad aut cum. Ut exercitationem non in fugiat.

Leave a Reply

Your email address will not be published. Required fields are marked *