Modul 2 Urls Dan App Django
Modul 2 Urls Dan App Django
URLS
2.1 Urls
Urls atau bahasa mudahnya disebut dengan pengalamatan di web browser, sebelum
membahas lebih jauh tentang Urls, tambahkan app pada project yang sebelumnya dibuat, nama
app tersebut dengan nama data, dengan memastikan git bash sudah terarah, pada project jualan.
Ketikan django-admin startapp data (Versi Lama), untuk Django versi 4, pyhton –m django
data tapi pastikan terlebih dahulu sudah masuk virtual env, seperti gambar berikut:
Dalam satu project bisa miliki lebih dari satu app, secara otomatis akan bertambah
folder data pada project jualan, perhatikan isi folder data pada gambar berikut:
Awalnya:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Ditambah:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'data',
]
Jadi setiap membuat app baru harus di daftarkan seperti di atas. Pembahasan urls terdapat
dua cara, sebagai berikut:
Url berpusat di project, letak pengaturan terdapat urls.py yang ada pada project, supaya
lebih jelas langsung praktek saja. Contoh akan membuat url, dengan nama home, profile dan
contact. Langkah awal buku pada file di folder jualan/urls.py, isinya sebagai berikut:
File jualan/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
]
Jika dilihat sudah terdapat url yang namanya admin, cara membukanya, jalankan dulu
seperti biasa cara menjalankan ketik di git bash dimana sudah terarah project yang akan kita
buka python manage.py runserver kemudian ketika di web browser-nya
http://localhost:8000/admin/, maka hasilnya:
Jika login admin tidak tampil seperti gambar 2.3 maka terlebih dahulu membuat
super Admin dengan cara createuser (Akan dibahas pada bab berikutnya). Django
secara otomatis memiliki Super Admin, untuk bisa mengelolah dan mendapatkan
username dan password-nya akan dibahas pada pembahasan super Admin Django. Pada
file di folder jualan/urls.py dipanggail app-nya kemudian import ke views-nya, seperti di
bawah ini:
Kata from memanggil nama app-nya yaitu data, kemudian di import di views pada app
data.
Nama urls ''(tanda petik satu) sama dengan kosong, kemudian pada views.py di
app data buat fungsi yang namanya home_page, name='home' kode tersebut untuk link
url yang di panggil. Selanjutnya buka file folder data/views.py, isi file tersebut sebagai
berikut:
Awalnya:
Ditambah:
def home_page(request):
return HttpResponse("<h1>Halaman Home</h1>")
Maka jika dijalankan dengan url : http://localhost:8000/, hasilnya seperti gambar di bawah:
Penjelasan:
Digunakan menampilkan isi untuk halaman yang diminta, meski penggunaan tersebut
hanya untuk pemanggilan yang tidak mengandung file, tapi jika mengandung file seperti html,
maka library tersebut tidak apa-apa untuk diguanakan.
def home_page(request):
return HttpResponse("<h1>Halaman Home</h1>")
Kode di atas adalah penulisan dari fungsi dalam bahasa pemprograman python secara
umum, ingat bahasa python identik sekali dengan identasi. Ketika menulis kode program Python
perlu memperhatikan indentasi, karena kode program Python distrukturkan berdasarkan
indentasi. Kode program yang berada pada sisi kiri yang sama maka dibaca sebagai satu blok,
untuk membuat sub blok maka cukup dengan memberikan jarak spasi atau tab ke kanan, jika
penulisan kode seperti di bawah berikut salah:
def home(request):
return HttpResponse("<h1>Halaman Home</h1>")
Penulisan indentasi berlaku untuk semua control, baik -if, -for, while foreach dan lainnya.
Isiannya akan menampilkan <h1>Halaman Home</h1> sesuai yang ditulias
Kode urls.py from data import views kurang efektif dan bahkan akan terjadi ambigu atau
membingungkan dipemanggilan pada app-nya, jika dalam sebuah project memilik dua atau lebih
app. Kode yang tepat sebagai berikut:
Awalnya:
from data import views
Diganti:
from data.views import home_page
Diganti:
path('', home_page, name='home'),
Dengan kode di atas, jika terdapat banyak app, data di atas tinggal diubah, contoh ada
app produk, maka menulisannya menjadi from produk.views import home_page dan
seterusnya.
def home_page(request):
return HttpResponse("<h1>Halaman Home</h1>")
def profile_page(request):
return HttpResponse("<h1>Halaman profile</h1>")
def contact_page(request):
return HttpResponse("<h1>Halaman contact</h1>")
Urls app maksudnya pusat pengaturan menu atau link terdapat di app-nya, maka dibuat
urls.py di app data. Pada urls.py di project tambahkan include di bagian django.urls, setelah itu
tambahkan path('nama url, include('nama app.urls’)). Contoh akan dibuat dengan link
http://localhost:8000/barang/, http://localhost:8000/barang/products/ dan
http://localhost:8000/barang/custumer/, maka diubah seperti berikut:
Ditambah:
path('barang', include('data.urls'))
urlpatterns = [
path('', views.data_page, name='data'),
path('products/', views.products_page, name='products'),
path('custumer/', views.custumer_page, name='custumer'),
]
Penjelasan:
Tanda titik menandakan file yang dipanggil sejajar dengan file pemanggil, atau lebih
gampangnya dalam satu folder. Penjelasan yang lainya sama pada pembahasan urls project.
Kemudian tambahkan fungsi product dan custumer sesuai dengan data pada urls.py di app data
(views.products, views.custumer). Tambahkan dua fungsi di views.py pada app data, seperti
dibawah:
def home_page(request):
return HttpResponse("<h1>Halaman Home</h1>")
def profile_page(request):
return HttpResponse("<h1>Halaman profile</h1>")
def contact_page(request):
return HttpResponse("<h1>Halaman contact</h1>")
def data_page(request):
return HttpResponse("<h1>Halaman Data Awal</h1>")
def products_page(request):
return HttpResponse("<h1>Halaman Products</h1>")
def custumer_page(request):
return HttpResponse("<h1>Halaman Custumer</h1>")
Silakan jalankan (python manage.py runserver pada git bash yang sudah terarah dengan
project-nya) dan lihat hasilnya:
Membuat urls baik project atau app, pada dasarnya sama, sesuai dengan keinginan
masing-masing, cuman ada letak berbedaanya, jika project urls-nya langsung pada object yang
dituju atau satu penamaan link, contoh localhost:8000/profil, localhost:8000/contact dan
seterusnya. Beda halnya jika urls app, memiliki dua penamaan atau satu contoh dua penamaan:
localhost:8000/products/detail, localhost:8000/products/order dan seterusnya. Satu penamaan
nilai path diberikan kosong path('', include('data.urls')) dan urls pada app data menyesuaikan.
Pembahasan tentang data jual, aplikasinya akan diubah menggunakan urls app, dan link profile
dan contact dihapus, fokus pada data penjualan, jadi link terdiri dari home, products dan
custumer, maka kode akan berupa seperi berikut:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('data.urls'))
]
urlpatterns = [
path('', views.home, name='home'),
path('products/', views.products, name='products'),
path('custumer/', views.custumer, name='custumer'),
]
def home(request):
return HttpResponse("<h1>Halaman Home</h1>")
def products(request):
return HttpResponse("<h1>Halaman Products</h1>")
def custumer(request):
return HttpResponse("<h1>Halaman Custumer</h1>")
Konsep urls di app akan digunakan secara terus menerus dalam pembuatan project ini,
karena data terstruktur sesuai dengan kebutuhan app yang akan dibuat.