Anda di halaman 1dari 10

BAB 2

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:

Gambar 2.1 Menambah app dengan nama data

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:

Gambar 1.2 Tambahan file jika ditambah app


File-file data pada app pada kotak merah di atas, memiliki fungsi yang berbeda-beda,
seperti views.py digunakan sebagai pusat alur data-data yang dihubungkan dengan routing
yang dirancang sebelumnya. File model.py digunakan untuk kelolah database, dan lainnya,
lebih jelasnya akan dibahas sambil lalu menggarap project tersebut, agar lebih paham secara
konsep dan praktik. Kotak merah yang di bawah secara default adalah database milik Django,
yaitu menggunakan SQLite, database tersebut diubah sesuai keinginan, di folder
jualan/settings.py. Setiap membuat app pada Django harus di daftarkan di file settings.py pada
bagian INSTALLED_APPS,

File di folder jualan/settings.py

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:

2.2 Urls pada project sebagai pusat pengaturanya.

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

from django.contrib import admin


from django.urls import path

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:

Gambar 2.3 Super Admin di Django

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:

file di folder jualan/urls.py

from django.contrib import admin


from django.urls import path
from data import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home_page, name='home'),
]
Penjelasan:

from data import views

Kata from memanggil nama app-nya yaitu data, kemudian di import di views pada app
data.

path('', views.home_page, name='home'),

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:

file folder data/views.py

Awalnya:

from django.shortcuts import render

# Create your views here.

Ditambah:

from django.shortcuts import render


from django.http import HttpResponse
# Create your views here.

def home_page(request):
return HttpResponse("<h1>Halaman Home</h1>")

Maka jika dijalankan dengan url : http://localhost:8000/, hasilnya seperti gambar di bawah:

Gambar 2.4 Hasil dari Url project awal

Penjelasan:

from django.http import HttpResponse

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:

Kode yang 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

Dan pada bagian urlnya:


Awalanya:
path('', views.home, name='home'),

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.

Kode keseluruhan menjadi:

File di folder jualan/urls.py

from django.contrib import admin


from django.urls import path
from data.views import home_page
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_page, name='home'),
]
File di folder data/views.py tetap tidak berubah, berikutnya sesuai target: home, profile dan
contact tinggal ditambah menjadi:
File di folder jualan/urls.py

from django.contrib import admin


from django.urls import path
from data.views import home_page, profile_page, contact_page
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_page, name='home'),
path('profile/', profile_page, name='profile'),
path('contact/', contact_page, name='contact'),
]

File di folder data/views.py

from django.shortcuts import render


from django.http import HttpResponse
# Create your views here.

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>")

Hasilnya sebagai berikut:

Gambar 2.5 Hasil dari Urls Dinamis


2.3 Urls pada App sebagai tempat pengaturannya

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:

File di folder jualan/urls.py


Awalnya:

from django.contrib import admin


from django.urls import path
from data.views import home_page, profile_page, contact_page
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_page, name='home'),
path('profile/', profile_page, name='profile'),
path('contact/', contact_page, name='contact'),
]

Ditambah:

from django.contrib import admin


from django.urls import path, include
from data.views import home_page, profile_page, contact_page
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_page, name='home'),
path('profile/', profile_page, name='profile'),
path('contact/', contact_page, name='contact'),
path('barang/', include('data.urls'))
]
Penjelasan:
Include

Digunakan untuk memfungsikan urls pada app.

path('barang', include('data.urls'))

Nilai path('barang/' bebas terserah keinginan, kemudian kata include('data tersebut


diambil dari nama app yang akan dijadikan urls app. Sesuai penjelasan di atas pada app data
buat urls.py setelah itu isi sebagai berikut:
File di folder data/urls.py→Buat file urls.py di app data

from django.urls import path


from . import views

urlpatterns = [
path('', views.data_page, name='data'),
path('products/', views.products_page, name='products'),
path('custumer/', views.custumer_page, name='custumer'),
]

Penjelasan:

from . import views

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:

File di folder data/views.py

from django.shortcuts import render


from django.http import HttpResponse
# Create your views here.

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:

Gambar 2.6 Hasil dari Urls App data

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:

File di folder jualan/urls.py

from django.contrib import admin


from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('data.urls'))
]

File di folder data/urls.py

from django.urls import path


from . import views

urlpatterns = [
path('', views.home, name='home'),
path('products/', views.products, name='products'),
path('custumer/', views.custumer, name='custumer'),
]

File di folder data/views.py

from django.shortcuts import render

from django.http import HttpResponse


# Create your views here.

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>")

Project dijalankan dengan cara biasanya kemudian lihat hasilnya:

Gambar 2.7 Hasil dari Urls App data bagian 2

Konsep urls di app akan digunakan secara terus menerus dalam pembuatan project ini,
karena data terstruktur sesuai dengan kebutuhan app yang akan dibuat.

Anda mungkin juga menyukai