Cara Cepat Menguasai Django ORM Di Shell - CRUDPRO

Cara Cepat Menguasai Django ORM Di Shell

Cara Cepat Menguasai Django ORM Di Shell

Latar belakang

Tujuan artikel ini adalah untuk memberi pembaca panduan komprehensif dalam mengakses shell Django untuk berinteraksi dengan basis data. Di Django Shell, Anda dapat menggunakan ORM untuk menanyakan basis data, membuat, membaca, memperbarui dan menghapus data, dan melakukan operasi terkait basis data lainnya. Anda juga dapat menggunakan Django Shell untuk bereksperimen dengan model basis data baru atau memodifikasi yang sudah ada.

Apa itu Django ORM?

Django ORM adalah alat Pemetaan Relasional Objek (ORM) yang menyediakan antarmuka tingkat tinggi bagi developer untuk bekerja dengan basis data. Dengan Django ORM, developer dapat berinteraksi dengan basis data mereka menggunakan objek Python, daripada kueri SQL mentah, membuatnya lebih mudah untuk menulis, membaca, dan memahami kode basis data.

Apa itu Django Shell?

Shell Django adalah antarmuka baris perintah yang menyediakan alat ampuh untuk bekerja dengan Django ORM. Dengan shell Django, developer dapat secara interaktif menguji dan men-debug kode Django mereka, juga melakukan kueri basis data dasar dan lanjut. Dengan menggunakan shell, developer dapat dengan cepat membuat prototipe fitur baru dan bereksperimen dengan kueri basis data yang berbeda sebelum memasukkannya ke dalam kode mereka.

Start

Saya rasa cukup untuk teori ini mari kita masuk ke coding, misalnya di blog ini saya telah membuat aplikasi keuangan di django dan modelnya tertulis di bawah ini:

from django.db import models

class CurrencyModel(models.Model):
    code = models.CharField(max_length=3, unique=True, blank=True, null=True)
    name = models.CharField(max_length=32, unique=True, blank=True, null=True)

    class Meta:
        verbose_name = "currency"

    def __str__(self) -> str:
        return self.name

class CategoryModel(models.Model):
    name = models.CharField(max_length=32, blank=True)

    class Meta:
        verbose_name = "categorie"

    def __str__(self) -> str:
        return self.name


class TransactionModel(models.Model):
    amount = models.DecimalField(max_length=15, decimal_places=2, max_digits=8)
    currency = models.ForeignKey(CurrencyModel, on_delete=models.PROTECT, related_name="transactions")
    date = models.DateTimeField(auto_now_add=True)
    description = models.TextField()
    category = models.ForeignKey(CategoryModel, on_delete=models.SET_NULL, null=True, blank=True, related_name="transactions")

    class Meta:
        verbose_name = "transaction"
       
       
    def __str__(self) -> str:
        return f"{self.id}. {self.amount} {self.currency.code}"

Dengan asumsi bahwa aplikasi inti kami sudah ditetapkan sebagai persyaratan sehingga kami dapat melewati langkah ini, melakukan migrasi, lalu bermigrasi ke database

Selanjutnya, pada CLI mari masukkan perintah untuk masuk ke dalam shell Django

py manage.py shell

untuk kesederhanaan, di aplikasi keuangan kami, kami hanya akan bekerja dengan model saat ini jadi kami harus mengimpor model ke shell Django dan kami dapat memulai kueri

# import the model
from apps.bank.models import CurrencyModel, CategoryModel, TransactionModel

# getting all the data
CurrencyModel.objects.all()
CategoryModel.objects.all()
TransactionModel.objects.all()

Temukan semua transaksi dengan Mata Uang Rupiah

# Getting all the data in Rupiah currency
currency = CurrencyModel.objects.get(id=1)
transaction = TransactionModel.objects.filter(currency=currency)
transaction

Buat mata uang baru untuk database

# create a new currency model
currency = CurrencyModel()
currency.code = "USD"
currency.name = "Dollar"
currency.save()

Kesimpulan:

Dengan menggabungkan kekuatan shell Django dan ORM Django, kita bisa mengakses database lebih cepat dan lebih fleksibel. Alat-alat ini bisa membantu kami membangun aplikasi yang lebih tangguh dan handal, dan mempercepat proses developeran dengan menyediakan lingkungan yang kuat dan interaktif untuk eksperimen dan pengujian.