Perbedaan App dan Project pada Django

Setelah menulis artikel yang berjudul Panduan Memulai Belajar Django, saya akan membahas tentang perbedaan App dan Project pada Django. Mungkin bahasan kali ini tidak akan begitu panjang. Hanya akan menjelaskan tentang perbedaan dan contoh yang akan digunakan agar tidak kebingungan membedakan antara App dan Project pada Django.

Apa itu Project?

Project dalam Django merupakan sebuah inti dari web aplikasi yang akan kita buat. Dan merupakan sebuah container bagi submodule serta konfigurasi. Project pada dasarnya bisa berjalan tanpa harus mempunyai App. Namun, pada skala besar biasanya akan memerlukan banyak App dalam sebuah project bila dibutuhkan. Jadi relasi antara Project dengan App bisa saling berelasi ataupun berjalan dengan sendirinya. Tergantung dari apa yang akan kita ciptakan.

Apa itu App?

App merupakan bagian dari sebuah project yang kita buat. Tidak seperti Project yang bisa berjalan sendiri, App membutuhkan Project karena memang harus disatukan dengan Project. App dibuat untuk memenuhi fungsi tertentu dalam sebuah Project seperti : App Komentar, App file Uploader dsb. App ini pun bisa dipindah ke project lain ketika dibutuhkan. App bisa saling berhubungan/memerlukan dengan App lainnya dalam sebuah project. Yang dimana berarti relasi antara App dan Project adalah ketergantungan dan tidak bisa berjalan sendiri.

Struktur Direktori Django Project

djangotutorial/
|-- djangotutorial
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

Itu adalah contoh struktur direktori Project yang sudah dijelaskan sebelumnya di artikel ‘Panduan Memulai Belajar Django’.

Struktur Direktori Django Project dan App

$ django-admin startapp apptutorial

djangotutorial/
|-- djangotutorial
|   |-- __init__.py
|   |-- apptutorial
|   |   |-- __init__.py
|   |   |-- admin.py
|   |   |-- apps.py
|   |   |-- migrations
|   |   |   `-- __init__.py
|   |   |-- models.py
|   |   |-- tests.py
|   |   `-- views.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

Pada contoh diatas, kita membuat sebuah App yang bernama apptutorial didalam sebuah project djangotutorial.

Contoh Pengaplikasian

Misal kita akan membuat sebuah web blog dengan fitur komentar, posting, rating, subscribe. Maka akan seperi berikut:

  •  Project:

    • DjangoBlog
  • App:

    • Registrasi -> Akan menangani proses registrasi untuk penulis

    • Login -> Akan menangani sistem login untuk penulis

    • Komentar -> Akan menangani proses komentar untuk pembaca dan penulis

    • Posting -> Akan menangani tulisan yang akan diposting oleh penulis

    • Rating -> Akan menangani rating sistem pada artikel yang telah dibuat oleh penulis

    • Subscribe -> Akan menangani Subscribe sistem ketika pembaca melakukan langganan terhadap blog

Mungkin itu gambaran dari layout yang akan kita buat. Bisa disesuaikan dengan yang dibutuhkan. Semoga dengan artikel ini jadi lebih tahu perbedaan antara keduanya dan tidak membingungkan. Untuk informasi lebih lengkap akan saya lampirkan pada bagian referensi untuk penjelasan nya. Semoga bermanfaat! Mohon koreksi bila ada kesalahan penulisan 🙂

Referensi

Share this awesome article to the world, so everyone knows it :)

LinkedIn
Reddit
WhatsApp
Hacker News
Telegram