Tutorial django framework untuk pemula

There’s will be the hard way before the easy way.

Tutorial ini ditargetkan untuk pemula (yang baru ingin mempelajari Django) dan telah mengerti dasar-dasar Python.

Pada tutorial kali ini kita akan membuat blog app sederhana dengan Django 2.2.2.

Tanpa basa basi, let’s get started…

Installation

Langkah pertama sebelum kita membuat sebuah web / aplikasi dengan django, kita harus memiliki Virtual Environment dalam pc / laptop / komputer kita.

NOTE: khusus untuk pengguna Windows, disarankan untuk menggunakan bash for windows.

# buat sebuah direktori baru untuk project django kita.
$ mkdir tutor

# masuk ke direktori yang baru saja kita buat. 
$ cd tutor

# buatlah virtual environment di dalamnya.
$ python -m venv env

# buatlah file baru bernama requirements.txt di dalam folder "django-blog"
$ touch requirements.txt

# aktifkan virtual environment
$ source env/bin/activate

# install django
(env) tutor $ pip install django

# update dependencies kita pada requirements.txt
(env) tutor $ pip freeze > requirements.txt

Pada langkah pertama tersebut, kita telah berhasil menginstall django, langkah selanjutnya adalah membuat project pada direktori tutor yang telah kita buat.

Membuat aplikasi dengan django

Memulai Django Project

Setelah kita berhasil menginstallnya di atas, langkah selanjutnya kita akan langsung membuat sebuah project.

# membuat django project
(env) tutor $ django-admin startproject django_blog

# jika kita periksa lagi, maka akan muncul folder project yang baru saja kita buat.
(env) tutor $ ls
django_blog  env  requirements.txt

# masuklah ke dalam folder django_blog tersebut
(env) tutor $ cd django_blog

# jika kita periksa pada direktori "django_blog", maka kita akan memiliki file manage.py di dalamnya.
(env) tutor/django_blog $ ls
django_blog  manage.py

# jalankan django server
(env) tutor/django_blog $ ./manage.py runserver 
# atau
(env) tutor/django_blog $ python manage.py runserver

# Output

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

September 19, 2019 - 16:07:39
Django version 2.2.5, using settings 'django_blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Dari hasil output di atas, maka sudah dipastikan kita telah berhasil menginstall dan menjalankan django pada local server kita.

Jika kita mengetikkan localhost:8000 atau 127.0.0.1:8000 pada browser kesayangan, maka akan muncul welcome page khas django yang sangat indah. isn’t it?

tutorials django untuk pemula

Pada dasarnya, django hanya memiliki 1 project / main project yang kita beri nama django_blog.
pada folder django_blog sendiri memiliki beberapa file di antaranya:

  • __init__.py: untuk memberitahu django jika kita dapat mengimport nama project kita sebagai package / module.
  • settings.py: berisi semua setting yang ada pada project & aplikasi kita.
  • urls.py: url mapping / main url pada django.
  • wsgi.py: Web Server Gateway Interface, digunakan pada saat project kita telah siap untuk go live / production.

Optional

Project Structure in Django

Secara default, project structure pada django akan terlihat seperti berikut ini:

tutor/
│
├── django_blog/
│   ├── django_blog/
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   │
│   └── manage.py
│
└── env/

Untuk itu kita akan membuat sedikit perubahan / modifikasi agar mempermudah kita dalam berpindah directory.

# memindahkan file manage.py dari sub direktori ke direktori utama (tutor)
(env) tutor $ mv django_blog/manage.py ./

#memindahkan sub direktori "django_blog" ke direktori utama (tutor)
(env) tutor $ mv django_blog/django_blog/* django_blog

# menghapus folder kosong yang ada pada "django_blog" di dalam sub direktori "django_blog"
(env) tutor $ rm -r django_blog/django_blog/

Setelah kita pindahkan / merubah struktur project kita di atas, maka kita struktur project baru kita akan terlihat seperti berikut:

tutor/
│
├── django_blog/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
│
├── env/
│
└── manage.py

Dari struktur di baru yang telah kita buat, akan jauh lebih memudahkan dalam membaca project kita.
Terlebih jika kita telah memiliki banyak aplikasi di dalamnya.

Membuat Django Apps

Selanjutnya kita akan membuat sebuah app

# membuat app pada django
(env) tutor $ django-admin startapp home

List file & folder baru kita akan terlihat seperti berikut init:

#list
(env) tutor $ ls
tutor/
│
├── django_blog/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
│
├── env/
│
├── home
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
│
└── manage.py

Kita telah melakukan generate sebuah app baru bernama home.

Dalam home app tersebut, terdapat beberapa file:

  • admin.py : Konfigurasi untuk dashboard / admin.
  • apps.py : File berisi nama aplikasi kita HomeConfig(AppConfig).
  • __init__.py : Memberitahukan kepada django agar kita dapat menggunakannya sebagai package.
  • migrations : Berisi skema database yang kita gunakan setelah melakukan migrate.
  • models.py : Berisi class yang akan digunakan django untuk membuat database table.
  • tests.py : Untuk melakukan unit testing pada aplikasi kita (bug killing).
  • views.py : Untuk mengatur tampilan yang akan kita tampilkan pada template.

Setelah kita membuat aplikasi, jangan lupa untuk mengupdate file settings.py kita pada django_blog/settings.py.

# update file settings.py

# karena di sini kita menggunakan bash, maka kita bisa menggunakan nano (Unix Text Editor) sebagai text editornya.
(env) tutor & nano django_blog/settings.py

# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'home', # Aplikasi home yang baru saja kita buat.
]
  • Membuat Views.

Buka file views.py pada aplikasi (folder)home kita.

from django.shortcuts import render

# Create your views here.


def homeIndex(request):
    return render(request, 'home.html')

Sangat sederhana bukan?
Pada baris kode di atas, kita membuat sebuah function view bernama homeIndex yang akan merender template kita home.html ketika function tersebut di panggil.

  • Templates
    Selanjutnya adalah template.
# membuat folder templates di dalam folder django_blog.
(env) tutor $ mkdir/django_blog/templates

# membuat file home.html di dalam folder templates
(env) tutor $ touch /django_blog/templates/home.html

Dalam file home.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Learn Django</title>
</head>
<body>
    <h1>Welcome to my first site made with Django</h1>
</body>
</html>

Edit file bernama urls.py di dalam folder django_blog

from django.contrib import admin
from django.urls import path, include
from home import views

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

Langkah selanjutnya, buatlah file bernama urls.py di dalam home app:

from django.urls import path
from home import views

urlpatterns = [
    path('', views.homeIndex, name='homeIndex'),
]
  • Last step.

Pada django, kita dapat menentukan base direktori template yang akan kita gunakan.
Pada tutorial ini kita akan meletakkannya pada direktori project kita yaitu django_blog.

Edit file settings.py seperti berikut:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        # menentukan path directory untuk template yang ingin kita gunakan. 
        'DIRS': [os.path.join(BASE_DIR, 'django_blog/templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

And that’s it, jalankan server ./manage.py runserver dan coba jalankan localhost:8000 pada browser kita, maka kita akan melihat hasilnya seperti di bawah ini:

tutorial django untuk pemula

Pada tutorial kali ini kita telah berhasil melakukan kontrol pada views dan template, selanjutnya kita akan mencoba menggunakan static assets pada django (JavaScript, CSS, and more), untuk membuat tampilan lebih responsive dan sedap dipandang.

Next tutorial > Integrate static files pada django


Tags: #python, #TutorialsDjango, #Blog, #Tutorial-Python-Untuk-Pemula, #Tutorial-Operator-Python-Pemula