<p>Pada tutorial kali ini, kita akan membahas tentang <a href="https://docs.djangoproject.com/en/3.1/topics/http/urls/" target="_blank" rel="noopener">URL routing</a> yang ada di django. URL Routing ini berfungsi untuk mengalihkan halaman, dari satu halaman ke halaman lainnya. Dimana semua macam routing ini akan di atur oleh file yang bernama <strong>urls.py. </strong>Sebenarnya dari segi penamaan boleh saja dengan nama lain. <em>Misal : route.urls</em></p>
<p>Namun karena kita harus mengikuti aturan-aturan penamaan file yang sudah ditentukan oleh django, maka kita diharuskan menamai urls.py. Agar project yang kita buat nanti akan lebih mudah dipahami oleh orang lain.</p>
<p>urls.py merupakan deklarasi URL* untuk project Django; Berisi konfigurasi URL pada project yang kita buat.</p>
<h2><strong>URL Routing Django</strong></h2>
<p>buat file <strong>urls.py</strong> baru pada app <strong>blog</strong> yang sudah kita buat sebelumnya pada tutorial berikut <a href="https://www.tutorialpedia.net/tutorial-django-bahasa-indonesia-4-membuat-app-django/"><strong>Tutorial Django Bahasa Indonesia #4: Membuat App Django</strong></a>.<a href="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_702.png"><img class="aligncenter size-full wp-image-8078" src="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_702.png" alt="url routing django" width="1221" height="806" /></a>perlu diketahui bahwa, <strong>urls.py </strong>yang berada di folder project <strong>mysite </strong>berbeda dengan <strong>urls.py </strong>berada di folder app <strong>blog. </strong>Karena apabila kita memisah suatu fungsi menjadi beberapa app, maka kita perlu juga untuk memisahkan URL Routing (<strong>urls.py) </strong>pada setiap app. Hal ini bertujuan agar kode yang berada di <strong>urls.py </strong>menjadi lebih rapih.</p>
<p>Namun, agar <strong>urls.py </strong>yang berada pada folder app <strong>blog </strong>bisa berfungsi, kita perlu &#8220;mendaftarkannya&#8221; terlebih dahulu kedalam <strong>urls.py </strong>yang berada pada folder project, didalam contoh ini yaitu project <strong>mysite.</strong></p>
<p><strong>Caranya:</strong></p>
<p>buka <strong>urls.py </strong>yang berada didalam project <strong>mysite. </strong>secara default, <strong>urls.py</strong> yang berada didalam folder project seperti berikut ini:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">from django.contrib import admin 
from django.urls import path 
 
urlpatterns = [ 
 path('admin/', admin.site.urls), 
] 
</pre>
<p>Lalu, masukkan/include <strong>urls.py </strong>yang ada di app blog. Masukkan kode dibawah ini didalam bracket <strong>urlpatterns.</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">path('', include('blog.urls')), 
</pre>
<p>Lalu simpan perubahan tersebut, jika muncul error pada terminal atau console anda, itu artinya anda belum meng-<em>import </em>include. Pastikan ada mengimport include pada bagian import path.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">from django.urls import path,include 
</pre>
<p>Maka hasil akhir dari <strong>urls.py </strong>pada project <strong>mysite </strong>akan menjadi seperti berikut.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">from django.contrib import admin 
from django.urls import path,include 
 
urlpatterns = [ 
 path('admin/', admin.site.urls), 
 path('', include('blog.urls')), 
]</pre>
<p>pada bagian<span style="color: #339966;"> (&#8216;blog.urls&#8217;) <span style="color: #000000;">itu artinya kita akan memasukkan urls yang berada di app <strong>blog</strong>. </span></span></p>
<p>Sekarang, kita beralih ke dalam <strong>views.py </strong>yang berada di app <strong>blog. </strong>Sekarang kita akan mencoba menampilkan <strong>Hello World </strong>dihalaman homepage. Untuk saat ini kita belum menggunakan template html, tapi kita hanya akan menggunakan <strong>HttpResponse </strong>built in django.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">from django.shortcuts import render 
from django.http import HttpResponse 
 
def index(request): 
 return HttpResponse("<;center>;<;h1>;Hello World!<;/h1>;<;/center>;") 
 
</pre>
<ul>
<li><strong>Line 1</strong> : merupakan import default yang ada ketika kita membuat app baru di django. import tersebut berfungsi untuk me-<em>render </em>halaman html ke browser. yang mana, saat ini belum kita gunakan.</li>
<li><strong>Line 2 : </strong>kita akan meng-<em>import </em>HttpResponse, yang berfungsi untuk memberikan response ke dalam browser ketika suatu URL di akses.</li>
<li><strong>Line 4: </strong>membuat <em>function </em>dengan nama index, untuk nama function bisa diganti/bebas sesuai fungsi tujuannya. karena saat ini kita akan menampilkan hello world pada halaman homepage, maka saya beri nama function <em>index.</em></li>
<li><strong>Line 5 : </strong>Pada saat function yang ada di views tersebut di akses, maka ia akan memberikan http response berupa hello world yang dibungkus dengan tag html.</li>
</ul>
<p> ;</p>
<p>Setelah itu, kita perlu melakukan URL Routing yang ada di <strong>urls.py </strong>pada app <strong>blog. </strong>Masukkan kode berikut pada <strong>urls.py </strong>di app <strong>blog.</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">from django.urls import path 
from . import views 
 
urlpatterns = [ 
 path('', views.index) 
]</pre>
<ul>
<li><strong>Line 1</strong> : Pada saat membuat urls.py baru kita perlu mengimport path yang ada di django urls.</li>
<li><strong>Line 2</strong> : untuk melakukan mapping url dan views, kita juga perlu mengimport views yang ada di app blog.</li>
<li><strong>Line 4</strong> : urlpatterns merupakan tag dasar pada django yang digunakan untuk melakukan URL Routing.</li>
<li><strong>Line 5</strong> : Pada bagian ini, ketika user melakukan request ke halaman &#8216;/&#8217; (homepage) maka dia akan memanggil views dengan nama index. Lalu views index tersebut akan memberikan response/return sesuai yang kita inginkan.</li>
</ul>
<p>Sekarang coba jalankan server django, dan kita lihat hasilnya.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">python manage.py runserver</pre>
<p>Maka hasilnya akan seperti ini.<a href="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_703.png"><img class="aligncenter size-full wp-image-8089" src="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_703.png" alt="url routing django" width="1627" height="316" /></a></p>
<p>Anda juga bisa mengubah url sesuai yang anda inginkan pada bagian path. Misal saya akan mengubah url menjadi <strong>http://127.0.0.1/homepage/</strong></p>
<p>maka pada bagian path ubah menjadi seperti berikut.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">path('homepage/', views.index) 
</pre>
<p>Sekarang coba akses <strong>http://127.0.0.1/homepage/<a href="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_704.png"><img class="aligncenter size-full wp-image-8090" src="https://www.tutorialpedia.net/wp-content/uploads/Screenshot_704.png" alt="url routing django" width="1710" height="475" /></a></strong></p>
<p>jadi, segala macam url routing bisa kita atur didalam <strong>urls.py ini</strong>.</p>
<p>Tutorial tentang URL Routing ini sampai disini saja, pada artikel berikutnya kita akan masuk ke dalam templating django.</p>
<p>Seluruh <em>source code </em>yang ada di tutorial ini ada di github saya.</p>
<p>Link : <a href="https://github.com/fikryans/latihan_django" target="_blank" rel="noopener">Github</a></p>

Tutorial Django Bahasa Indonesia #5: URL Routing Django
Recent Articles
Kumpulan DNS Gratis Tercepat!
DNS merupakan sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain atau hostname yang ada akan ditranslate dan...
Apa itu DNS ? Dan Fungsinya
Apa itu DNS? - DNS (Domain Name System) adalah sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain...
Apa itu OLT ? Serta Fungsinya Dalam Jaringan
Apa itu olt ? OLT (Optical Line Termination) adalah perangkat keras yang berfungsi sebagai titik akhir (end-point) dari layanan jaringan optik pasif (Passive Optical...
Template Voucher Untuk Mixradius
Template Voucher Untuk Mixradius - Pasti kalian bosen kan dengan template voucher default mixradius? tenang. kali ini saya akan memberikan template untuk voucher mixradius kamu agar...
Daftar Port Game Online Mikrotik Terbaru
Daftar port game online dibawah ini bisa digunakan untuk membuat rule agar koneksi ke game online tersebut bisa lancar, bisa juga untuk memisahkan antara...