Introduce and setup installation Django

Muhammad Fahri | March 11, 2020 · 3 min read

Edit on GithubEdit on Github

What is Django ?

Django adalah high-level web framework Python yang memiliki pengembangan cepat dalam keamanan dan perawatan website. Dibangun oleh pengembang berpengalaman, Django menjangkau banyak sekali kerumitan dalam pengembangan web, jadi kamu bisa fokus dalam menulis aplikasi tanpa harus menulis ulang jalurnya. Django dapat digunakan secara gratis dan open source, memiliki komunitas yang terus tumbuh dan aktif, dokumentasi yang jelas, dan banyak pilihan untuk dukungan yang gratis maupun berbayar.

Django sendiri dibangun menggunakan konsep Model-View-Template (MVT),berbeda dengan framework web populer pada umumnya, seperti laravel dan codeiginiter yang menggunakan konsep Model-View-Controller.

What is MVT?

Model View Template atau MVT adalah sebuah design pattern seperti MVC, design pattern MVT juga memisahkan kode menjadi tiga bagian.

mvt-architecture
mvt-architecture
  • Model berhubungan dengan data dan interaksi ke database atau webservice.
  • View bertindak sebagai penghubung data dan template.
  • Template berhubungan dengan segala sesuatu yang akan ditampilkan ke end-user.

Why Django ?

  1. Sangat Cepat (Ridiculously fast). Django dirancang untuk membantu developer membuat aplikasi dari konsep hingga penyelesaian secepat mungkin.
  2. Keamanan yang meyakinkan (Reassuringly secure). Django menganggap serius masalah keamanan dan membantu developer menghindari banyak kesalahan umum dalam keamaan web.
  3. Sangat scalable (Exceedingly scalable). Django menggunakan arsitektur berbasis komponen “shared-nothing” (masing-masing bagian dari arsitektur tidak bergantung pada yang lain, dan karenanya dapat diganti atau diubah jika diperlukan). Memiliki pemisahan yang jelas antara bagian-bagian yang berbeda berarti dapat meningkatkan lalu lintas yang meningkat dengan menambahkan perangkat keras pada level apapun: server caching, server database, atau server aplikasi. Beberapa situs tersibuk berhasil menyingkirkan Django untuk memenuhi permintaan mereka (misalnya Instagram dan Disqus, untuk memberi nama hanya dua).

What you need to learn django ?

Peralatan yang kita butuhkan dalam membuat project Django adalah:

  1. Virtualenv
  2. PIP

Apa itu virtualenv ?

Virtualenv merupakan tool yang berfungsi membuat lingkungan virtual terisolasi. lingkungan python disini yang dimaksud meliputi binary (executable),library dan semua package yang di install oleh package manager python seperti pip dan easy_install.

Kenapa harus menggunakan virtualenv? virtualenv menjaga lingkungan kita agar tidak bentrok dan merusak modul/package python yang terinstall secara global dalam sistem operasi kita.

Apa itu pip ?

PIP merupakan paket manajemen python yang digunakan untuk menginstall dan menghapus modul/package python, termasuk juga untuk menginstall django.

Instalasi pip dan virtualenv

Ubuntu & Debian
$ sudo apt-get install python-virtualenv python-pip python3-virtualenv python3-pip
Archlinux
$ sudo pacman -S python-pip python2-pip python2-virtualenv python-virtualenv
Windows
  1. Unduh get-pip.py
  2. Buka command prompt dan arahkan ke folder dimana get-pip.py berada.
  3. Jalankan perintah:
C:\> python get-pip.py
  1. Dan pip sudah terinstall Kamu bisa mengechecknya dengan cara ketikan perintah berikut pada command prompt:
$ pip -V

Kamu akan melihat output seperti ini:

C:\>pip 18.0 from c:\Programs\python\python37\lib\site-packages\pip (python 3.7)

Artinya pip berhasil terinstall kemudian install virtual env dengan perintah berikut:

C:\> pip install virtualenv

Instalasi Django di virtualenv

Virtualenv adalah lingkungan virtual yang terisolasi dari lingkungan OS. Artinya kita bebas menginstall apapun di dalam lingkungan virtual, tanpa harus mengganggu aplikasi lain di luar lingkungan.

Kita bisa membuat lingkungan virtual dengan perintah berikut: Sebelumnya kita buat directory dulu untuk menyimpan environtmentnya agar lebih rapih:

$ mkdir Dev
$ cd Dev/
$ virtualenv <nama-lingkungan-virtual>
virtual install
virtual install

Sekarang kita punya direktori baru bernama Env, Aktivkan environtmentnya dengan perintah berikut:

$ source Env/bin/activate
virtual aktivation
virtual aktivation

Setelah itu install Django dengan perintah berikut:

$ pip install django
django install
django install

Disini terlihat bahwa saya sudah menginstallnya.

Membuat Project Django

Untuk membuat project baru Django, kita bisa ketik perintah berikut:

$ django-admin startproject myweb

Keterangan:

  • startproject adalah perintah untuk membuat project baru django
  • myweb adalah nama projectnya

setelah itu, kita akan mendapatkan direktori baru bernama myweb dengan isi seperti ini:

django create project
django create project

Mengenal Struktur Direktori Project Django

Berikut ini adalah struktur direktori yang dibuatkan Django:

myweb
├── manage.py
└── myweb
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Berikut file dan direktori yang harus kita ketahui:

  • Direktori projects myweb/ adalah root direktori yang berisi seluruh file dari project. Nama direktori ini bisa diganti dengan apa saja, karena tidak akan jadi masalah bagai Django.

  • File manage.py adalah program untuk mengelola project Django. Kita akan sering mengeksekusi 📄 manage.py saat ingin melakukan sesuatu terhadap project, misalnya: menjalankan server, melakukan migrasi, menciptakan sesuatu, dll.

  • Direktori apps myweb/ adalah direktori yang berisi package untuk project kita, Nama direktori ini digunakan untuk mengimport apapun.

  • File myweb/__init__.py adalah sebuah file kosong yang menyatakan direktori ini adalah sebuah paket (python package).

  • File mysite/settings.py adalah tempat kita mengkonfigurasi project.

  • File myweb/urls.py adalah tempat kita mendeklarasikan URL pada web kita.

  • File myweb/wsgi.py adalah entri point untuk WSGI-compatible yang digunakan sebagai peladen server untuk project kita

  • File myweb/asgi.py adalah entri point untuk ASGI-compatible yang digunakan sebagai peladen server untuk project kita.

How Django Work ?

django work
django work
  • urls.py


    Setiap request dari client akan diproses pertama kali oleh `urls.py`, karena di sini berisi definisi alamat URL (route) dan fungsi yang akan dieksekusi di setiap rute di akses.
  • views.py


    Views berfungsi untuk memproses request yang berasal dari `urls.py` kemudian mengembalikan response berdasarkan request dari client, jika client membutuhkan data maka views akan meminta ke `models.py` dan untuk UI/template akan meminta ke dalam folders template.
  • models.py


    Models adalah objek python yang mendefiniskan struktur data dari aplikasi, dan menyediakan mekanisme untuk mengelola sepert menambah,mengubah atau menghapus (CRUD) dan melakukan query records dalam database.
  • Templates


    Template digunakan untuk mendefiniskan struktur atau layout sebuah file (seperti halaman HTML). sebuah view bisa secara dinamis membuat sebuah html page dengan HTML template, dan mengisinya dengan data dari model. Template dapat digunakan untuk menentukan struktur jenis file apapun tidak harus HTML.

Running Django.

Kita bisa menggunakan server yang disediakan djangoo untuk development. Berikut ini cara menjalankannya, ketik perintah ini:

python manage.py runserver

Maka, server berhasil dijalankan seperti ini tampilannya.

django server
django server

Abaikan alert yang berwarna merah, karena kita belum melakukan migrate.

Sekarang kita coba membuka django kita dibrowser buka http://localhost:8000, maka akan muncul tampilan seperti berikut.

django web runing
django web runing

Tadaaaa… Kita sudah berhasil menginstal dan membuat project Django dengan benar.

Whats Next ?

Selanjutnya kita akan melakukan pengenalan lebih jauh lagi tentang django seperti urls,views,dan template. See you …

Referensi


  1. Django web
  2. Developer mozilla Django Introduction
  3. Petani Kode django untuk pemula
  4. geekinsta.com diffence between mvc and mvt

TAGS:djangopython

Written by

Muhammad Fahri

Hi, I'm Muhammad Fahri, web developer. Click here if you want know more about me or checkout my portafolio.