Django View dan URL – Dynamic

Pada modul ini kita akan bahas fungsi view yang lebih advanced yaitu

  • Menambakan logic kedalam view.
  • Menggunakan dynamic path.

Masih melanjutkan project modul sebelumnya, buka file my_app/views.py, kemudia modifikasi code menjadi seperti berikut:

from django.shortcuts import render
from django.http import HttpResponse

sp_cat = {
    'web': 'Web Dev Page',
    'ds' : 'Data Science Page',
    'iot' : 'IoT Dev Page'

}

def cat_view(request, cat):
    return HttpResponse(sp_cat[cat])

def add_view(request, num1, num2):
    res = num1 + num2
    return HttpResponse(str(res))

Disini kita memiliki python dict yang berisi categori.

Kita juga definisikan 2 fungsi, yaitu cat_view untuk menampilkan kategori page dan add_view fungsi untuk menampilkan hasil penjumlahan.

Perhatikan kedua fungsi tersebut memerlukan paramter tambahan, yang diperoleh dari URL yang dimasukan oleh client.

Kemudian buka file my_app/urls.py, modifikasi code menjadi seperti berikut:

from django.urls import URLPattern, path
from . import views

urlpatterns = [
    path('<str:cat>/', views.cat_view),
    path('<int:num1>/<int:num2>', views.add_view),
]

path pertama akan menerima category dan harus berupa string, dengan fungsi view yang digunakan adalah cat_view. Contoh url adalah my_app/web/

path kedua akan menerima dua parameter dan harus berupa integer, fungsi yang akan menghandle adalah add_view. Contoh url adalh my_app/1/3

Jika Anda jalankan web server dengan perintah

$ python manage.py runserver

Lakukan testing dengan memasukan path my_app/web/, path my_app/iot/ atau my_app/1/3, maka sesuai ekspektasi akan ditampilkan view yang bersangkutan.

Sharing is caring:

Leave a Comment