aboutsummaryrefslogtreecommitdiff
path: root/files/id/learn/server-side
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:17 -0500
commitda78a9e329e272dedb2400b79a3bdeebff387d47 (patch)
treee6ef8aa7c43556f55ddfe031a01cf0a8fa271bfe /files/id/learn/server-side
parent1109132f09d75da9a28b649c7677bb6ce07c40c0 (diff)
downloadtranslated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.gz
translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.bz2
translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.zip
initial commit
Diffstat (limited to 'files/id/learn/server-side')
-rw-r--r--files/id/learn/server-side/django/development_environment/index.html423
-rw-r--r--files/id/learn/server-side/django/index.html67
-rw-r--r--files/id/learn/server-side/django/tutorial_local_library_website/index.html90
-rw-r--r--files/id/learn/server-side/first_steps/index.html39
-rw-r--r--files/id/learn/server-side/index.html59
5 files changed, 678 insertions, 0 deletions
diff --git a/files/id/learn/server-side/django/development_environment/index.html b/files/id/learn/server-side/django/development_environment/index.html
new file mode 100644
index 0000000000..79cb6b884a
--- /dev/null
+++ b/files/id/learn/server-side/django/development_environment/index.html
@@ -0,0 +1,423 @@
+---
+title: Setting up a Django development environment
+slug: Learn/Server-side/Django/development_environment
+translation_of: Learn/Server-side/Django/development_environment
+---
+<div>{{LearnSidebar}}</div>
+
+<div>{{PreviousMenuNext("Learn/Server-side/Django/Introduction", "Learn/Server-side/Django/Tutorial_local_library_website", "Learn/Server-side/Django")}}</div>
+
+<p class="summary">Sekarang setelah Anda tahu apa gunanya Django, kami akan menunjukkan kepada Anda cara mengatur dan menguji lingkungan pengembangan Django di Windows, Linux (Ubuntu), dan macOS - sistem operasi apa pun yang Anda gunakan, artikel ini akan memberi Anda apa yang Anda butuhkan untuk dapat mulai mengembangkan aplikasi Django.</p>
+
+<table class="learn-box standard-table">
+ <tbody>
+ <tr>
+ <th scope="row">Prerequisites:</th>
+ <td>Pengetahuan dasar tentang penggunaan terminal / baris perintah dan cara menginstal paket perangkat lunak pada sistem operasi komputer pengembangan Anda.</td>
+ </tr>
+ <tr>
+ <th scope="row">Objective:</th>
+ <td>Untuk memiliki lingkungan pengembangan untuk Django (2.0) yang berjalan di komputer Anda.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Gambaran_lingkungan_pengembangan_Django">Gambaran lingkungan pengembangan Django</h2>
+
+<p>Django membuatnya sangat mudah untuk mengatur komputer Anda sendiri sehingga Anda dapat mulai mengembangkan aplikasi web. Bagian ini menjelaskan apa yang Anda dapatkan dengan lingkungan pengembangan, dan memberikan gambaran umum dari beberapa opsi pengaturan dan konfigurasi Anda. Sisa dari artikel ini menjelaskan metode yang <em>disarankan</em> untuk menginstal lingkungan pengembangan Django di Ubuntu, macOS, dan Windows, dan bagaimana Anda dapat mengujinya.</p>
+
+<h3 id="Apa_itu_Django_development_environment">Apa itu Django development environment?</h3>
+
+<p>The development environment  adalah instalasi Django di komputer lokal Anda yang dapat Anda gunakan untuk mengembangkan dan menguji aplikasi Django sebelum menyebarkannya ke lingkungan produksi.</p>
+
+<p>Alat utama yang disediakan Django sendiri adalah seperangkat skrip Python untuk membuat dan bekerja dengan proyek Django, bersama dengan<em> server web pengembangan</em> sederhana yang dapat Anda gunakan untuk menguji lokal (yaitu pada komputer Anda, bukan pada server web eksternal) Aplikasi web Django di browser web komputer Anda.</p>
+
+<p>Ada alat periferal lain, yang merupakan bagian dari lingkungan pengembangan, yang tidak akan kita bahas di sini. Ini termasuk hal-hal seperti editor teks atau IDE untuk mengedit kode, dan alat manajemen kontrol sumber seperti Git untuk mengelola berbagai versi kode Anda dengan aman. Kami berasumsi bahwa Anda telah menginstal editor teks.</p>
+
+<h3 id="Apa_saja_opsi_pengaturan_Django">Apa saja opsi pengaturan Django?</h3>
+
+<p>Django sangat fleksibel dalam hal bagaimana dan di mana ia dapat diinstal dan dikonfigurasi. Django dapat:</p>
+
+<ul>
+ <li>Installed on different operating systems.</li>
+ <li>Diinstal dari sumber, dari Python Package Index (PyPi) dan dalam banyak kasus dari aplikasi manajer paket komputer host.</li>
+ <li>Dikonfigurasi untuk menggunakan salah satu dari beberapa basis data, yang mungkin juga perlu diinstal dan dikonfigurasi secara terpisah.</li>
+ <li>Jalankan di lingkungan sistem utama Python atau dalam lingkungan virtual Python yang terpisah.</li>
+</ul>
+
+<p>Masing-masing opsi ini memerlukan konfigurasi dan pengaturan yang sedikit berbeda. Subbagian berikut menjelaskan beberapa pilihan Anda. Untuk sisa artikel ini, kami akan menunjukkan kepada Anda cara mengatur Django pada sejumlah kecil sistem operasi, dan pengaturan itu akan diasumsikan sepanjang sisa modul ini.</p>
+
+<div class="note">
+<p><strong>Catatan</strong>: Opsi instalasi lain yang mungkin dicakup dalam dokumentasi resmi Django. Kami menautkan ke <a href="#" id="See_also">appropriate documents below</a>.</p>
+</div>
+
+<h4 id="Sistem_operasi_apa_yang_didukung">Sistem operasi apa yang didukung?</h4>
+
+<p>Aplikasi web Django dapat dijalankan di hampir semua mesin yang dapat menjalankan bahasa pemrograman Python 3: Windows, macOS, Linux / Unix, Solaris, dan lain-lain. Hampir semua komputer harus memiliki kinerja yang diperlukan untuk menjalankan Django selama pengembangan.</p>
+
+<p>In this article, we'll provide instructions for Windows, macOS, and Linux/Unix.</p>
+
+<h4 id="Versi_Python_apa_yang_harus_digunakan">Versi Python apa yang harus digunakan?</h4>
+
+<p>Kami menyarankan Anda menggunakan versi terbaru yang tersedia - pada saat penulisan ini adalah Python 3.8.2.</p>
+
+<p>Python 3.5 or later can be used if needed (Python 3.5 support will be dropped in future releases).</p>
+
+<div class="note">
+<p><strong>Catatan</strong>: Python 2.7 tidak dapat digunakan dengan rilis Django saat ini (The Django 1.11.x series adalah yang terakhir untuk mendukung Python 2.7).</p>
+</div>
+
+<h4 id="Di_mana_kita_bisa_mengunduh_Django">Di mana kita bisa mengunduh Django?</h4>
+
+<p>Ada tiga tempat untuk mengunduh Django:</p>
+
+<ul>
+ <li>Repositori Paket Python (PyPi), menggunakan alat <em>pip</em>. Ini adalah cara terbaik untuk mendapatkan versi stabil terbaru dari Django.</li>
+ <li>Gunakan versi dari manajer paket komputer Anda. Distribusi Django yang dibundel dengan sistem operasi menawarkan mekanisme instalasi familiar. Namun perlu dicatat bahwa versi paket mungkin sudah cukup lama, dan hanya dapat diinstal ke lingkungan sistem Python (yang mungkin bukan yang Anda inginkan).</li>
+ <li>Instal dari sumber. Anda bisa mendapatkan dan menginstal versi terkini dari Django dari sumber. Ini tidak disarankan untuk pemula tetapi diperlukan saat Anda siap untuk mulai berkontribusi kembali ke Django itu sendiri.</li>
+</ul>
+
+<p>Artikel ini menunjukkan cara menginstal Django dari PyPi, untuk mendapatkan versi stabil terbaru.</p>
+
+<h4 id="Database_yang_mana">Database yang mana?</h4>
+
+<p>Django mendukung empat database utama (PostgreSQL, MySQL, Oracle, dan SQLite), dan ada perpustakaan komunitas yang menyediakan berbagai tingkat dukungan untuk database SQL dan NoSQL populer lainnya. Kami menyarankan Anda memilih database yang sama untuk produksi dan pengembangan (meskipun Django mengabstraksikan banyak perbedaan database menggunakan Object-Relational Mapper (ORM), there are still <a href="https://docs.djangoproject.com/en/2.1/ref/databases/">potential issues</a> that are better to avoid).</p>
+
+<p>Untuk artikel ini (dan sebagian besar modul ini) kita akan menggunakan database <em>SQLite</em>, yang menyimpan datanya dalam file. SQLite dimaksudkan untuk digunakan sebagai basis data yang ringan dan tidak dapat mendukung konkurensi tingkat tinggi. Namun, ini adalah pilihan yang sangat baik untuk aplikasi yang hanya bersifat baca-saja.</p>
+
+<div class="note">
+<p><strong>Catatan: </strong>Django dikonfigurasi untuk menggunakan SQLite secara default ketika Anda memulai proyek situs web Anda menggunakan alat standar (<em>django-admin</em>). Ini adalah pilihan yang bagus ketika Anda memulai karena tidak memerlukan konfigurasi atau pengaturan tambahan.</p>
+</div>
+
+<h4 id="Menginstal_seluruh_sistem_atau_dalam_lingkungan_virtual_Python">Menginstal seluruh sistem atau dalam lingkungan virtual Python?</h4>
+
+<p>Ketika Anda menginstal Python3 Anda mendapatkan lingkungan global tunggal yang dibagikan oleh semua kode Python3. Meskipun Anda dapat menginstal paket Python apa pun yang Anda suka di lingkungan, Anda hanya dapat menginstal satu versi tertentu dari setiap paket pada suatu waktu.</p>
+
+<div class="note">
+<p><strong>Catatan</strong>: Aplikasi python yang diinstal ke dalam lingkungan global berpotensi dapat saling bertentangan (mis. Jika mereka bergantung pada versi berbeda dari paket yang sama).</p>
+</div>
+
+<p>Jika Anda menginstal Django ke lingkungan default / global maka Anda hanya akan dapat menargetkan satu versi Django di komputer. Ini bisa menjadi masalah jika Anda ingin membuat situs web baru (menggunakan Django versi terbaru) sambil tetap mempertahankan situs web yang bergantung pada versi yang lebih lama.</p>
+
+<p>Akibatnya, pengembang Python / Django berpengalaman biasanya menjalankan aplikasi Python dalam lingkungan virtual Python independen. Ini memungkinkan beberapa lingkungan Django berbeda di satu komputer. Tim pengembang Django sendiri merekomendasikan agar Anda menggunakan lingkungan virtual Python!</p>
+
+<p>Modul ini mengasumsikan bahwa Anda telah menginstal Django ke lingkungan virtual, dan kami akan menunjukkan caranya di bawah ini.</p>
+
+<h2 id="Memasang_Python_3">Memasang Python 3</h2>
+
+<p>Untuk menggunakan Django Anda harus menginstal Python di sistem operasi Anda. Jika anda menggunakan <em>Python 3</em> maka anda juga akan memerlukan <a href="https://pypi.python.org/pypi">Python Package Index</a> tool — <em>pip3</em> — yang digunakan untuk mengelola (menginstal, memperbarui, dan menghapus) paket / pustaka Python yang digunakan oleh Django dan aplikasi Python Anda yang lain.</p>
+
+<p>Bagian ini menjelaskan secara singkat bagaimana Anda dapat memeriksa versi Python apa yang ada, dan menginstal versi baru sesuai kebutuhan, untuk Ubuntu Linux 18.04, macOS, dan Windows 10.</p>
+
+<div class="note">
+<p><strong>Note</strong>: Bergantung pada platform Anda, Anda mungkin juga dapat menginstal Python / pip dari manajer paket sistem operasi sendiri atau melalui mekanisme lain. Untuk sebagian besar platform, Anda dapat mengunduh file instalasi yang diperlukan dari <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a> dan menginstalnya menggunakan metode spesifik platform yang sesuai.</p>
+</div>
+
+<h3 id="Ubuntu_18.04">Ubuntu 18.04</h3>
+
+<p>Ubuntu Linux 18.04 LTS sudah terdapat Python 3.6.6 secara default. Anda dapat melihatnya dengan menjalankan perintah berikut di bash terminal:</p>
+
+<pre class="brush: bash notranslate"><span style="line-height: 1.5;">python3 -V
+ Python 3.6.6</span>
+</pre>
+
+<p>Namun, alat Python Package Index yang akan dibutuhkan untuk dapat  memasang packages Python 3 (termasuk Django) tidak tersedia secara default. Jadi, Anda dapat memasang pip3 di bash terminal menggunakan:</p>
+
+<pre class="brush: bash notranslate">sudo apt install python3-pip
+</pre>
+
+<h3 id="macOS">macOS</h3>
+
+<p>macOS "El Capitan" dan versi terbaru yang lainnya tidak tersedia Python 3 didalamnya. Anda dapat melihatnya dengan menjalankan perintah di bash terminal:</p>
+
+<pre class="brush: bash notranslate"><span style="line-height: 1.5;">python3 -V
+ </span>-bash: python3: command not found</pre>
+
+<p>Anda dapat dengan mudah memasang Python 3 (bersamaan dengan pip3) di<a href="https://www.python.org/"> python.org</a>:</p>
+
+<ol>
+ <li>Download installer yang dibutuhkan:
+ <ol>
+ <li>Pergi ke <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a></li>
+ <li>Pilih tombol <strong>Download Python 3.8.2</strong> (versi minor yang tepat mungkin berbeda)</li>
+ </ol>
+ </li>
+ <li>Cari file tersebut dengan menggunakan <em>Finder, </em>double-click file tersebut. Ikuti perintah pada proses instalasi.</li>
+</ol>
+
+<p>Sekarang Anda dapat mengonfirmasi keberhasilan instalasi dengan melihat versi Python 3 seperti yang ditunjukkan dibawah:</p>
+
+<pre class="brush: bash notranslate"><span style="line-height: 1.5;">python3 -V
+ Python 3.8.2</span>
+</pre>
+
+<p>Anda dapat pula mengecek bahwa <em>pip3 </em>sudah terpasang dengan melihat list packages yang tersedia:</p>
+
+<pre class="brush: bash notranslate">pip3 list</pre>
+
+<h3 id="Windows_10">Windows 10</h3>
+
+<p>Windows doesn't include Python by default, but you can easily install it (along with the <em>pip3</em> tool) from<a href="https://www.python.org/"> python.org</a>:</p>
+
+<ol>
+ <li>Download the required installer:
+ <ol>
+ <li>Go to <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a></li>
+ <li>Select the <strong>Download Python 3.8.2</strong> button (the exact minor version number may differ).</li>
+ </ol>
+ </li>
+ <li>Instal Python dengan mengklik dua kali pada file yang diunduh dan mengikuti petunjuk instalasi</li>
+ <li>Pastikan untuk menandai kotak yang berlabel "Add Python to PATH"Pastikan untuk menandai kotak yang berlabel</li>
+</ol>
+
+<p>You can then verify that Python 3 was installed by entering the following text into the command prompt:</p>
+
+<pre class="brush: bash notranslate"><span style="line-height: 1.5;">py -3 -V
+ Python 3.8.2</span>
+</pre>
+
+<p>The Windows installer incorporates <em>pip3</em> (the Python package manager) by default. You can list installed packages as shown:</p>
+
+<pre class="brush: bash notranslate"><span style="line-height: 1.5;">pip3 list</span>
+</pre>
+
+<div class="note">
+<p><strong>Note</strong>: Pemasang harus mengatur semua yang Anda butuhkan agar perintah di atas berfungsi. Namun jika Anda mendapatkan pesan bahwa Python tidak dapat ditemukan, Anda mungkin lupa menambahkannya ke jalur sistem Anda. Anda dapat melakukan ini dengan menjalankan penginstal lagi, memilih "Modify", dan centang kotak berlabel  "Add Python to environment variables" di halaman kedua.</p>
+</div>
+
+<h2 id="Using_Django_inside_a_Python_virtual_environment">Using Django inside a Python virtual environment</h2>
+
+<p>Perpustakaan yang akan kami gunakan untuk membuat lingkungan virtual kami adalah <a href="https://virtualenvwrapper.readthedocs.io/en/latest/index.html">virtualenvwrapper</a> (Linux and macOS) dan <a href="https://pypi.python.org/pypi/virtualenvwrapper-win">virtualenvwrapper-win</a> (Windows), yang pada gilirannya keduanya menggunakan alat virtualenv. The wrapper tools menciptakan antarmuka yang konsisten untuk mengelola antarmuka di semua platform.</p>
+
+<h3 id="Menginstal_perangkat_lunak_lingkungan_virtual">Menginstal perangkat lunak lingkungan virtual</h3>
+
+<h4 id="Ubuntu_virtual_environment_setup">Ubuntu virtual environment setup</h4>
+
+<p>Setelah menginstal Python dan pip Anda dapat menginstal <em>virtualenvwrapper</em> (which includes <em>virtualenv</em>). Panduan instalasi resmi dapat ditemukan <a href="http://virtualenvwrapper.readthedocs.io/en/latest/install.html">here</a>, atau ikuti instruksi di bawah ini.</p>
+
+<p>Install the tool using <em>pip3</em>:</p>
+
+<pre class="brush: bash notranslate"><code>sudo pip3 install virtualenvwrapper</code></pre>
+
+<p>Kemudian tambahkan baris berikut di akhir file startup shell Anda (ini adalah nama file tersembunyi <strong>.bashrc</strong> di direktori home Anda). Ini mengatur lokasi di mana lingkungan virtual seharusnya hidup, lokasi direktori proyek pengembangan Anda, dan lokasi skrip yang diinstal dengan paket ini:</p>
+
+<pre class="brush: bash notranslate"><code>export WORKON_HOME=$HOME/.virtualenvs
+export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
+export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
+export PROJECT_HOME=$HOME/Devel
+source /usr/local/bin/virtualenvwrapper.sh</code>
+</pre>
+
+<div class="note">
+<p><strong>Note</strong>: The <code>VIRTUALENVWRAPPER_PYTHON</code> and <code>VIRTUALENVWRAPPER_VIRTUALENV_ARGS </code>variables point to the normal installation location for Python3, and <code>source /usr/local/bin/virtualenvwrapper.sh</code> points to the normal location of the <code>virtualenvwrapper.sh</code> script. If the <em>virtualenv</em> doesn't work when you test it, one thing to check is that Python and the script are in the expected location (and then change the startup file appropriately).<br>
+ <br>
+ You can find the correct locations for your system using the commands <code>which virtualenvwrapper.sh</code> and <code>which python3</code>.</p>
+</div>
+
+<p>Kemudian muat ulang file startup dengan menjalankan perintah berikut di terminal:</p>
+
+<pre class="brush: bash notranslate"><code>source ~/.bashrc</code></pre>
+
+<p>Pada titik ini Anda akan melihat banyak skrip dijalankan seperti yang ditunjukkan di bawah ini:</p>
+
+<pre class="brush: bash notranslate"><code>virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/premkproject
+virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postmkproject
+...
+virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/preactivate
+virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postactivate
+virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/get_env_details</code>
+</pre>
+
+<p>Sekarang Anda dapat membuat lingkungan virtual baru dengan perintah <code>mkvirtualenv</code> .</p>
+
+<h4 id="macOS_virtual_environment_setup">macOS virtual environment setup</h4>
+
+<p>Pengaturan <em>virtualenvwrapper</em> pada macOS hampir persis sama dengan di Ubuntu (sekali lagi, Anda dapat mengikuti instruksi dari <a href="http://virtualenvwrapper.readthedocs.io/en/latest/install.html">official installation guide</a> atau di bawah). </p>
+
+<p>Install <em>virtualenvwrapper</em> (and bundling <em>virtualenv</em>) using <em>pip</em> as shown.</p>
+
+<pre class="brush: bash notranslate"><code>sudo pip3 install virtualenvwrapper</code></pre>
+
+<p>Then add the following lines to the end of your shell startup file.</p>
+
+<pre class="brush: bash notranslate"><code>export WORKON_HOME=$HOME/.virtualenvs
+export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
+export PROJECT_HOME=$HOME/Devel
+source /usr/local/bin/virtualenvwrapper.sh</code></pre>
+
+<div class="note">
+<p><strong>Note</strong>: The <code>VIRTUALENVWRAPPER_PYTHON</code> variable points to the normal installation location for Python3, and <code>source /usr/local/bin/virtualenvwrapper.sh</code> points to the normal location of the <code>virtualenvwrapper.sh</code> script. If the <em>virtualenv</em> doesn't work when you test it, one thing to check is that Python and the script are in the expected location (and then change the startup file appropriately).</p>
+
+<p>For example, one installation test on macOS ended up with the following lines being necessary in the startup file:</p>
+
+<pre class="brush: bash notranslate">export WORKON_HOME=$HOME/.virtualenvs
+export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
+export PROJECT_HOME=$HOME/Devel
+source /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh</pre>
+
+<p>You can find the correct locations for your system using the commands <code>which virtualenvwrapper.sh</code> and <code>which python3</code>.</p>
+</div>
+
+<p>These are the same lines as for Ubuntu, but the startup file is the differently named hidden file <strong>.bash_profile</strong> in your home directory.</p>
+
+<div class="note">
+<p><strong>Note</strong>: If you can't find <strong>.bash_profile</strong> to edit in the finder, you can also open this in the terminal using nano.</p>
+
+<p>The commands look something like this:</p>
+
+<pre class="notranslate"><code>cd ~ # Navigate to my home directory
+ls -la #List the content of the directory. YOu should see .bash_profile
+nano .bash_profile # Open the file in the nano text editor, within the terminal
+# Scroll to the end of the file, and copy in the lines above
+# Use Ctrl+X to exit nano, Choose Y to save the file.</code>
+</pre>
+</div>
+
+<p>Then reload the startup file by making the following call in the terminal:</p>
+
+<pre class="brush: bash notranslate"><code>source ~/.bash_profile</code></pre>
+
+<p>At this point, you may see a bunch of scripts being run (the same scripts as for the Ubuntu installation). You should now be able to create a new virtual environment with the <code>mkvirtualenv</code> command.</p>
+
+<h4 id="Windows_10_virtual_environment_setup">Windows 10 virtual environment setup</h4>
+
+<p>Installing <a href="https://pypi.python.org/pypi/virtualenvwrapper-win">virtualenvwrapper-win</a> is even simpler than setting up <em>virtualenvwrapper</em> because you don't need to configure where the tool stores virtual environment information (there is a default value). All you need to do is run the following command in the command prompt:</p>
+
+<pre class="notranslate"><code>pip3 install virtualenvwrapper-win</code></pre>
+
+<p>Now you can create a new virtual environment with the <code>mkvirtualenv</code> command</p>
+
+<h3 id="Creating_a_virtual_environment">Creating a virtual environment</h3>
+
+<p>Setelah Anda menginstal <em>virtualenvwrapper</em> or <em>virtualenvwrapper-win</em> then working with virtual environments is very similar on all platforms.</p>
+
+<p>Sekarang anda dapat membuat lingkungan baru dengan perintah <code>mkvirtualenv</code> .Saat perintah ini berjalan, Anda akan melihat lingkungan sedang disiapkan (apa yang Anda lihat sedikit <em>platform-specific</em>). Ketika perintah selesai lingkungan virtual baru akan aktif - Anda dapat melihat ini karena awal prompt akan menjadi nama lingkungan dalam tanda kurung (di bawah ini kami menunjukkan ini untuk Ubuntu, tetapi baris terakhir mirip untuk Windows / macOS) .</p>
+
+<pre class="notranslate"><code>$ mkvirtualenv my_django_environment
+
+Running virtualenv with interpreter /usr/bin/python3
+...
+virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/t_env7/bin/get_env_details
+(my_django_environment) ubuntu@ubuntu:~$</code>
+</pre>
+
+<p>Sekarang Anda berada di dalam lingkungan virtual Anda dapat menginstal Django dan mulai mengembangkan.</p>
+
+<div class="note">
+<p><strong>Catatan</strong>: Mulai sekarang dalam artikel ini (dan memang modul) asumsikan bahwa setiap perintah dijalankan dalam lingkungan virtual Python seperti yang kita atur di atas.</p>
+</div>
+
+<h3 id="Menggunakan_lingkungan_virtual">Menggunakan lingkungan virtual</h3>
+
+<p>Hanya ada beberapa perintah berguna lainnya yang harus Anda ketahui (ada lebih banyak dalam dokumentasi alat, tetapi ini adalah yang akan Anda gunakan secara teratur):</p>
+
+<ul>
+ <li><code>deactivate</code> — Keluar dari lingkungan virtual Python saat ini</li>
+ <li><code>workon</code> — Daftar lingkungan virtual yang tersedia</li>
+ <li><code>workon name_of_environment</code> — Aktifkan lingkungan virtual Python yang ditentukan</li>
+ <li><code>rmvirtualenv name_of_environment</code> — Hapus lingkungan yang ditentukan.</li>
+</ul>
+
+<h2 id="Installing_Django">Installing Django</h2>
+
+<p>Setelah Anda membuat lingkungan virtual, dan memanggil <code>workon</code> untuk memasukkannya, kamu dapat menggunakan <em>pip3 </em>untuk menginstal Django. </p>
+
+<pre class="brush: bash notranslate">pip3 install django~=2.2</pre>
+
+<p>Anda dapat menguji bahwa Django diinstal dengan menjalankan perintah berikut (ini hanya menguji apakah Python dapat menemukan modul Django):Anda dapat menguji bahwa Django diinstal dengan menjalankan perintah berikut (ini hanya menguji apakah Python dapat menemukan modul Django):</p>
+
+<pre class="brush: bash notranslate"># Linux/macOS
+python3 -m django --version
+ 2.2.12
+
+# Windows
+py -3 -m django --version
+ 2.2.12
+</pre>
+
+<div class="note">
+<p><strong>Catatan</strong>: Jika perintah Windows di atas tidak menampilkan modul django, cobalah:</p>
+
+<pre class="brush: bash notranslate">py -m django --version</pre>
+
+<p>Pada Windows, skrip <em>Python 3</em> diluncurkan dengan mengawali perintah dengan <code>py -3</code>, meskipun ini dapat bervariasi tergantung pada instalasi spesifikasi anda. Coba hilangkan <code>-3 </code> jika anda menemukan masalah dengan perintah, Di Linux / macOS, perintahnya adalah <code>python3.</code></p>
+</div>
+
+<div class="warning">
+<p><strong>Penting</strong>: Sisa <strong>modul ini </strong>menggunakan perintah <em>Linux</em> untuk menjalankan Python 3 (<code>python3</code>) . Jika anda bekerja pada <em>Windows </em>cukup ganti awalan ini dengan: <code>py -3</code></p>
+</div>
+
+<h2 id="Menguji_instalasi_Anda">Menguji instalasi Anda</h2>
+
+<p>Tes di atas berfungsi, tetapi tidak terlalu menyenangkan. Tes yang lebih menarik adalah membuat proyek kerangka dan melihatnya bekerja. Untuk melakukan ini, pertama-tama navigasikan di command prompt / terminal Anda ke tempat Anda ingin menyimpan aplikasi Django Anda. Buat folder untuk situs pengujian Anda dan navigasikan ke dalamnya.</p>
+
+<pre class="brush: bash notranslate">mkdir django_test
+cd django_test
+</pre>
+
+<p>Anda kemudian dapat membuat situs kerangka baru bernama "<em>mytestsite</em>" menggunakan alat <strong>django-admin</strong> seperti yang ditunjukkan. Setelah membuat situs, Anda dapat menavigasi ke folder tempat Anda akan menemukan skrip utama untuk mengelola proyek, bernama <strong>manage.py</strong>.</p>
+
+<pre class="brush: bash notranslate">django-admin startproject mytestsite
+cd mytestsite</pre>
+
+<p>Kita dapat menjalankan <em>development web server</em> dari dalam folder ini menggunakan <strong>manage.py</strong> dan perintah <code>runserver</code> , seperti yang ditunjukkan.</p>
+
+<pre class="brush: bash notranslate">$ python3 manage.py runserver
+Performing system checks...
+
+System check identified no issues (0 silenced).
+
+You have 15 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.
+
+December 16, 2018 - 07:06:30
+Django version 2.2.12, using settings 'mytestsite.settings'
+Starting development server at http://127.0.0.1:8000/
+Quit the server with CONTROL-C.
+</pre>
+
+<div class="note">
+<p><strong>Catatan: </strong>Perintah di atas menunjukkan perintah Linux / macOS. Anda dapat mengabaikan peringatan tentang "15 migrasi yang belum diterapkan" pada titik ini!</p>
+</div>
+
+<p>Setelah server berjalan, Anda dapat melihat situs dengan menavigasi ke URL berikut di browser web lokal Anda:<code>http://127.0.0.1:8000/</code>. Anda akan melihat situs yang terlihat seperti ini:<br>
+ <img alt="Django Skeleton App Homepage - Django 2.0" src="https://mdn.mozillademos.org/files/16288/Django_Skeleton_Website_Homepage_2_1.png" style="height: 714px; width: 806px;"></p>
+
+<ul>
+</ul>
+
+<h2 id="Ringkasan">Ringkasan</h2>
+
+<p>Anda sekarang memiliki lingkungan pengembangan Django dan berjalan di komputer Anda.</p>
+
+<p>Di bagian pengujian Anda juga melihat secara singkat bagaimana kami dapat membuat situs web Django baru menggunakan <code>django-admin startproject</code>, dan jalankan di browser Anda menggunakan server web pengembangan (<code>python3 manage.py runserver</code>). Pada artikel selanjutnya, kami memperluas proses ini, membangun aplikasi web yang sederhana namun lengkap.</p>
+
+<h2 id="Lihat_juga">Lihat juga</h2>
+
+<ul>
+ <li><a href="https://docs.djangoproject.com/en/2.1/intro/install/">Quick Install Guide</a> (Django docs)</li>
+ <li><a href="https://docs.djangoproject.com/en/2.1/topics/install/">How to install Django — Complete guide</a> (Django docs) - termasuk informasi tentang cara menghapus Django</li>
+ <li><a href="https://docs.djangoproject.com/en/2.1/howto/windows/">How to install Django on Windows</a> (Django docs)</li>
+</ul>
+
+<p>{{PreviousMenuNext("Learn/Server-side/Django/Introduction", "Learn/Server-side/Django/Tutorial_local_library_website", "Learn/Server-side/Django")}}</p>
+
+<h2 id="Dalam_modul_ini">Dalam modul ini</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Introduction">Django introduction</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/development_environment">Setting up a Django development environment</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website">Django Tutorial: The Local Library website</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/skeleton_website">Django Tutorial Part 2: Creating a skeleton website</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Models">Django Tutorial Part 3: Using models</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Admin_site">Django Tutorial Part 4: Django admin site</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Home_page">Django Tutorial Part 5: Creating our home page</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Generic_views">Django Tutorial Part 6: Generic list and detail views</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Sessions">Django Tutorial Part 7: Sessions framework</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Authentication">Django Tutorial Part 8: User authentication and permissions</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Forms">Django Tutorial Part 9: Working with forms</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Testing">Django Tutorial Part 10: Testing a Django web application</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Deployment">Django Tutorial Part 11: Deploying Django to production</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/web_application_security">Django web application security</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/django_assessment_blog">DIY Django mini blog</a></li>
+</ul>
diff --git a/files/id/learn/server-side/django/index.html b/files/id/learn/server-side/django/index.html
new file mode 100644
index 0000000000..c95aa6f162
--- /dev/null
+++ b/files/id/learn/server-side/django/index.html
@@ -0,0 +1,67 @@
+---
+title: Django Web Framework (Python)
+slug: Learn/Server-side/Django
+tags:
+ - CodingScripting
+ - Pemula
+ - Python
+ - Server-side programming
+ - belajar
+ - django
+translation_of: Learn/Server-side/Django
+---
+<div>{{LearnSidebar}}</div>
+
+<p>Django merupakan sebuah web framework server-side yang sangat populer dan unggul. Modul ini menunjukan mengapa Django adalah salah satu web server frameworks yang paling populer, bagaimana mempersiapkan sebuah lingkungan pengembangan, dan bagaimana memulai menggunakan Django untuk membuat aplikasi web milik Anda.</p>
+
+<h2 id="Persyaratan">Persyaratan</h2>
+
+<p>Sebelum memulai modul ini, Anda tidak perlu memiliki pengetahuan tentang Django. Anda perlu mengetahui apa itu server-side web programming dan web frameworks, idealnya dengan membaca topik di modul <a href="/en-US/docs/Learn/Server-side/First_steps">Server-side website programming first steps</a>.</p>
+
+<p>Pengetahuan umum tentang konsep pemrograman dan <a href="/en-US/docs/Glossary/Python">Python</a> sangat direkomendasikan, tetapi tidak penting untuk memahami konsep inti.</p>
+
+<div class="note">
+<p><strong>Catatan</strong>: Python adalah salah satu bahasa pemrograman termudah bagi pemula untuk dibaca dan dimengerti. Disarankan, jika Anda ingin memahami modul ini dengan lebih baik maka ada banyak buku dan tutorial gratis yang tersedia di internet (programmers baru barangkali ingin memeriksa halaman <a href="https://wiki.python.org/moin/BeginnersGuide/NonProgrammers">Python untuk Non Programmers</a> di wiki python.org).</p>
+</div>
+
+<h2 id="Panduan">Panduan</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Introduction">Pengenalan Django</a></dt>
+ <dd>Dalam artikel pertama Django kita menjawab pertanyaan "Apa itu Django?" dan memberi Anda sebuah gambaran tentang apa yang membuat web framework ini spesial. Kita akan menjelaskan mengenai fitur utama-nya, termasuk beberapa fungsi lanjutan yang tidak dapat kami bahas secara rinci dalam modul ini. Kita juga akan menunjukan Anda beberapa bagian utama aplikasi Django, untuk memberi gambaran tentang apa yang dapat dilakukan sebelum Anda memasangnya dan mulai bermain.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/development_environment">Menyiapkan lingkungan pengembangan Django</a></dt>
+ <dd>Sekarang Anda sudah tahu apa itu Django, Kita akan menunjukan Anda bagaimana untuk mempersiapkan dan menguji sebuah lingkungan pengembangan Django pada Windows, Linux (Ubuntu), dan Mac OS X -- apapun sistem operasi yang Anda gunakan, artikel ini akan memberi apa yang Anda inginkan untuk dapat mulai mengembangkan aplikasi Django.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website">Django Tutorial: Situs Perpustakaan Lokal</a></dt>
+ <dd>Artikel pertama dalam rangkaian tutorial praktis kami menjelaskan apa yang akan Anda pelajari, dan memberikan gambaran umum tentang "perpustakaan lokal", contoh situs yang akan Kita kerjakan dan kembangkan di artikel berikutnya.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/skeleton_website">Django Tutorial Part 2: Membuat kerangka website</a></dt>
+ <dd>Artikel ini menjelaskan bagaimana Anda dapat membuat sebuah "skeleton (kerangka)" website sebagai dasar, yang kemudian dapat Anda gunakan untuk diisi dengan pengaturan situs, <strong>urls</strong>, <strong>models</strong>, <strong>views</strong>, dan <strong>templates</strong>.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Models">Django Tutorial Part 3: Menggunakan Models</a></dt>
+ <dd>Artikel ini menunjukan bagaimana untuk mendefinisikan models untuk website <em>LocalLibrary</em> — models mewakili sebuah struktur data yang ingin disimpan dalam data aplikasi kita, dan juga memperbolehkan Django untuk menyimpan data didalam sebuah database untuk kita(dan memodifikasinya nanti). Hal ini menjelaskan apa itu model, bagaimana hal itu di deklarasikan, dan beberapa jenis field (attribute suatu data) utama.Hal ini juga secara singkat menunjukkan beberapa cara utama untuk mengakses data model.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Admin_site">Django Tutorial Part 4: Django admin situs</a></dt>
+ <dd>Sekarang setelah kita membuat models untuk website <em>LocalLibrary</em>. Kita akan mengunakan situs Django Admin untuk menambahkan beberapa  data buku "sebenarnya". Pertama Kita akan menunjukkan Anda bagaimana cara mendaftarkan models dengan situs admin (admin site), lalu kita akan menunjukkan cara masuk dan membuat beberapa data. Pada akhirnya Kita menunjukkan beberapa cara untuk lebih meningkatkan penyajian situs admin.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Home_page">Django Tutorial Part 5: Membuat home page Kita</a></dt>
+ <dd>Kita telah mengetahui bahwa untuk menambahkan sebuah kode untuk menampilkan halaman penuh pertama kita -- sebuah homepage untuk <em>Locallibrary </em>yang menunjukkan berapa banyak record yang Kita miliki dari masing-masing tipe model dan menyediakan link navigasi sidebar ke halaman Kita yang lain. Sepanjang jalan kita akan mendapatkan pengalaman praktek dalam menulis URL maps dan views, mendapatkan records dari sebuah database, dan menggunakan templates.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Generic_views">Django Tutorial Part 6: List umum dan detail views</a></dt>
+ <dd>Tutorial ini mengembangkan website <em>Locallibrary</em> Kita, menambahkan list dan detail untuk books dan authors. Di sini kita akan belajar tentang <em>generic class-based views (sebuah tampilan berbasis class)</em>, dan menampilkan bagaimana mereka dapat mengurangi jumlah kode yang harus Anda tulis untuk kasus penggunaan umum. Kita juga akan membahas URL secara lebih rinci, menunjukkan bagaimana melakukan pencocokan pola dasar.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Sessions">Django Tutorial Part 7: Sessions framework</a></dt>
+ <dd>Tutorial ini mengembangkan website <em>LocalLibrary</em> kita, menambahkan session-based visit-counter ke sebuah home page. Ini adalah contoh yang relatif sederhana, namun ini menunjukkan bagaimana Anda dapat menggunakan sesi framework untuk menyediakan perilaku konsisten bagi pengguna anonymous(anonim) di situs Anda sendiri.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Authentication">Django Tutorial Part 8: User authentication and perizinan</a></dt>
+ <dd>Pada tutorial ini Kami akan menunjukan Anda bagaimana untuk memperbolehkan pengguna untuk masuk ke situs Anda dengan akun mereka, dan bagaimana mengatur apa yang dapat mereka lakukan dan melihat berdasarkan pada apakah <span class="short_text" id="result_box" lang="id"><span>mereka login dan <em>perizinan</em> mereka</span></span>. Sebagai bagian dari demonstrasi ini, kita akan memperluas website <em>LocalLibrary</em>, menambahkan halaman masuk dan logout, dan halaman pengguna dan staf untuk melihat buku-buku yang telah dipinjam.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Forms">Django Tutorial Part 9: Bekerja dengan forms</a></dt>
+ <dd>Dalam tutorial ini Kami akan menunjukkan cara bekerja dengan <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML Forms</a> di Django, dan khusunya cara termudah untuk menulis Forms untuk membuat, memperbaru, dan menghapus model Instances. Sebagai bagian dari demonstrasi ini, Kita akan memperluas website <em>LocalLibrary</em> sehingga pustakawan dapat memperbarui buku, dan membuat, memperbarui, dan menghapus penulis menggunakan formulir kita sendir(bukan menggunakan aplikasi admin).</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Testing">Django Tutorial Part 10: Menguji aplikasi web Django</a></dt>
+ <dd>Seiring berkembangnya website mereka menjadi lebih sulit untuk dilakukan pengujian secara manual -- bukan hanya karena adanya lebih banyak tes, namun, karena interaksi antar komponen menjadi lebih kompleks, perubahan kecil di satu area dapat memerlukan banyak tes tambahan untuk memverifikasi pengaruhnya terhadap area lain. Salah satu cara untuk mengurangi masalah ini adalah dengan menulis tes secara otomatis, yang dapat dengan mudah dan handal dijalankan setiap kali Anda melakukan perubahan. Tutorial ini menunjukkan bagaimana mengotomatisasi <em>pengujian unit</em> dari situs Anda menggunakan Django's test framework.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/Deployment">Django Tutorial Part 11: Meluncurkan Django untuk produksi</a></dt>
+ <dd>Sekarang Anda telah membuat (dan menguji) website <em>LocalLibrary</em> yang hebat, Anda akan menginstallnya pada public web server sehingga bisa diakses oleh staf perpustakaan dan anggota melalui internet. Artikel ini memberikan gambaran umum tentang bagaimana Anda bisa menemukan host untuk menyebarkan situs web Anda, dan apa yang perlu Anda lakukan agar situs Anda siap masuk produksi.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/web_application_security">Keamanan aplikasi web Django</a></dt>
+ <dd>Melindungi data pengguna merupakan bagian penting dari setiap desain situs web. Kita sebelumnya menjelaskan beberapa ancaman keamanan yang lebih umum dalam artikel <a href="https://developer.mozilla.org/en-US/docs/Web/Security">Web security</a> — artikel ini memberikan demonstrasi praktis tentang bagaimana perlindungan built-in (yang secara default terinstall) Django menangani ancaman tersebut.</dd>
+</dl>
+
+<h2 id="Penilaian">Penilaian</h2>
+
+<p>Penilaian berikut akan menguji pemahaman Anda tentang bagaimana membuat situs web menggunakan Django, seperti yang dijelaskan dalam panduan yang tercantum di atas.</p>
+
+<dl>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django/django_assessment_blog">DIY Django mini blog</a></dt>
+ <dd>Dalam penilaian ini Anda akan menggunakan beberapa pengetahuan yang telah Anda pelajari dari modul ini untuk membuat blog Anda sendiri.</dd>
+</dl>
diff --git a/files/id/learn/server-side/django/tutorial_local_library_website/index.html b/files/id/learn/server-side/django/tutorial_local_library_website/index.html
new file mode 100644
index 0000000000..21ed6a040e
--- /dev/null
+++ b/files/id/learn/server-side/django/tutorial_local_library_website/index.html
@@ -0,0 +1,90 @@
+---
+title: 'Django Tutorial: The Local Library website'
+slug: Learn/Server-side/Django/Tutorial_local_library_website
+translation_of: Learn/Server-side/Django/Tutorial_local_library_website
+---
+<div>{{LearnSidebar}}</div>
+
+<div>{{PreviousMenuNext("Learn/Server-side/Django/development_environment", "Learn/Server-side/Django/skeleton_website", "Learn/Server-side/Django")}}</div>
+
+<div>Pada artikel pertama ini dalam seri latihan praktek menjelaskan apa yang akan Anda pelajari, dan menyediakan sebuah gambaran mengenai percobaan website "local library" Kita akan bekerja dan terus berkembang pada artikel-artikel selanjuntya.</div>
+
+<table class="learn-box standard-table">
+ <tbody>
+ <tr>
+ <th scope="row">Prerequisites:</th>
+ <td>Read the <a href="/en-US/docs/Learn/Server-side/Django/Introduction">Django Introduction</a>. For the following articles you'll also need to have <a href="/en-US/docs/Learn/Server-side/Django/development_environment">set up a Django development environment</a>. </td>
+ </tr>
+ <tr>
+ <th scope="row">Objective:</th>
+ <td>To introduce the example application used in this tutorial, and allow readers to understand what topics will be covered. </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Gambaran">Gambaran</h2>
+
+<p>Selamat datang di tutorial django MDN "Local Library", dimana kita akan mengembangakn sebuah website yang memungkinkan untuk mengatur sebuah katalog untuk perpustakaan lokal. </p>
+
+<p>Pada seri ini Anda akan:</p>
+
+<ul>
+ <li>Menggunakan alat Django untuk membuat sebuah kerangka website dan aplikasi.</li>
+ <li>Memulai dan memberhentikan development server.</li>
+ <li>Membuat models untuk mempresentasikan data aplikasi Anda.</li>
+ <li>Menggunakan Django admin site untuk menempati data situs Anda.</li>
+ <li>Membuat views untuk mengembalikan suatu data yang spesifik sebagai tanggapan atas permintaan-permintaan yang berbeda, dan templates untuk me-render data tersebut ke HTML untuk ditampilkan kedalam browser.</li>
+ <li>Membuat mappers untuk menyatukan URL yang berbeda dengan spesifik views.</li>
+ <li>Menambahkan user authorization dan sessions untuk mengontrol perilaku dan akses.</li>
+ <li>Bekerja dengan forms.</li>
+ <li>Menulis test code untuk app Anda.</li>
+ <li>Menggunakan Django security secara efektif.</li>
+ <li>Men-deploy aplikasi anda kedalam produksi</li>
+</ul>
+
+<p>Anda sudah belajar mengenai beberapa topik-topik yang akan dibahas. Pada akhir seri tutorial Anda seharusnya cukup tahu untuk mengembangkan aplikasi simple Django secara pribadi.</p>
+
+<h2 id="The_LocalLibrary_website">The LocalLibrary website</h2>
+
+<p><em>LocalLibrary</em> is the name of the website that we'll create and evolve over the course of this series of tutorials. As you'd expect, the purpose of the website is to provide an online catalog for a small local library, where users can browse available books and manage their accounts.</p>
+
+<p>This example has been carefully chosen because it can scale to show as much or as little detail as we need, and can be used to show off almost any Django feature. More importantly, it allows us to provide a <em>guided</em> path through the most important functionality in the Django web framework:</p>
+
+<ul>
+ <li>In the first few tutorial articles we will define a simple <em>browse-only </em>library that library members can use to find out what books are available. This allows us to explore the operations that are common to almost every website: reading and displaying content from a database.</li>
+ <li>As we progress, the library example naturally extends to demonstrate more advanced Django features. For example we can extend the library to allow users to reserve books, and use this to demonstrate how to use forms, and support user authentication.</li>
+</ul>
+
+<p>Even though this is a very extensible example, it's called <em><strong>Local</strong>Library</em> for a reason — we're hoping to show the minimum information that will help you get up and running with Django quickly. As a result we'll store information about books, copies of books, authors and other key information. We won't however be storing information about other items a library might store, or provide the infrastructure needed to support multiple library sites or other "big library" features. </p>
+
+<h2 id="Im_stuck_where_can_I_get_the_source">I'm stuck, where can I get the source?</h2>
+
+<p>As you work through the tutorial we'll provide the appropriate code snippets for you to copy and paste at each point, and there will be other code that we hope you'll extend yourself (with some guidance).</p>
+
+<p>If you get stuck, you can find the fully developed version of the website <a href="https://github.com/mdn/django-locallibrary-tutorial">on Github here</a>.</p>
+
+<h2 id="Summary">Summary</h2>
+
+<p>Now that you know a bit more about the <em>LocalLibrary</em> website and what you're going to learn, it's time to start creating a <a href="/en-US/docs/Learn/Server-side/Django/skeleton_website">skeleton project</a> to contain our example.</p>
+
+<p>{{PreviousMenuNext("Learn/Server-side/Django/development_environment", "Learn/Server-side/Django/skeleton_website", "Learn/Server-side/Django")}}</p>
+
+<h2 id="In_this_module">In this module</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Introduction">Django introduction</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/development_environment">Setting up a Django development environment</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Tutorial_local_library_website">Django Tutorial: The Local Library website</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/skeleton_website">Django Tutorial Part 2: Creating a skeleton website</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Models">Django Tutorial Part 3: Using models</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Admin_site">Django Tutorial Part 4: Django admin site</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Home_page">Django Tutorial Part 5: Creating our home page</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Generic_views">Django Tutorial Part 6: Generic list and detail views</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Sessions">Django Tutorial Part 7: Sessions framework</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Authentication">Django Tutorial Part 8: User authentication and permissions</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Forms">Django Tutorial Part 9: Working with forms</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Testing">Django Tutorial Part 10: Testing a Django web application</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/Deployment">Django Tutorial Part 11: Deploying Django to production</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/web_application_security">Django web application security</a></li>
+ <li><a href="/en-US/docs/Learn/Server-side/Django/django_assessment_blog">DIY Django mini blog</a></li>
+</ul>
diff --git a/files/id/learn/server-side/first_steps/index.html b/files/id/learn/server-side/first_steps/index.html
new file mode 100644
index 0000000000..b085099081
--- /dev/null
+++ b/files/id/learn/server-side/first_steps/index.html
@@ -0,0 +1,39 @@
+---
+title: Server-side website programming first steps
+slug: Learn/Server-side/First_steps
+translation_of: Learn/Server-side/First_steps
+---
+<div>{{LearnSidebar}}</div>
+
+<p>Pada module server-side ini, akan menjawab beberapa pertanyaan mendasar mengenai pemrograman server-side--, apa itu ?, apa bedanya dengan pemrograman client-side ?, kenapa pemmogrmaan ini sangat berguna. Kemudian akan diberikan penjelasan singkat dari beberapa framework pemrograman server-side populer, bersamaan dengan petunjuk bagaimana memilih framework yang paling cocok untuk website Anda. </p>
+
+<h2 id="Prasyarat">Prasyarat</h2>
+
+<p>Sebelum memulai modul ini, Anda tidak harus memiliki pengetahuan apapun mengenai pemgrograman server-side, atau jenis pemrograman lainnya.</p>
+
+<p>Anda perlu untuk mengeti "bagaimana web bekerja". Kami sarankan Anda baca terlebih dahulu topik - topik berikut:</p>
+
+<ul>
+ <li>Apa itu web server</li>
+ <li>Apa software yang butuhkan untuk membuat sebuah website ?</li>
+ <li>Bagaimana cara mengupload file ke web server.</li>
+</ul>
+
+<p>Dengan pemahaman dasar diatas, Anda akan siap untuk belajar dengan modul ini. </p>
+
+<h2 id="Panduan">Panduan</h2>
+
+<dl>
+ <dt>Pengenalan web<a href="/en-US/docs/Learn/Server-side/First_steps/Introduction"> server side</a></dt>
+ <dd>Welcome to the MDN beginner's server-side programming course! In this first article we look at Server-side programming  from a high level, answering questions such as "what is it?", "how does it differ from client-side programming?", and "why it is so useful?". After reading this article you'll understand the additional power available to websites through server-side coding.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview">Client-Server overview</a></dt>
+ <dd>Now that you know the purpose and potential benefits of server-side programming we're going to examine in detail what happens when a server receives a "dynamic request" from a browser. As most website server-side code handles requests and responses in similar ways, this will help you understand what you need to do when writing your own code.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/First_steps/Web_frameworks">Server-side web frameworks</a></dt>
+ <dd>The last article showed you what a server-side web application needs to do in order to respond to requests from a web browser. Now we show how web frameworks can simplify these tasks, and help you choose the right framework for your first server-side web application.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/First_steps/Website_security">Website security</a></dt>
+ <dd>Website security requires vigilance in all aspects of website design and usage. This introductory article won't make you a website security guru, but it will help you understand the first important steps you can take to harden your web application against the most common threats.</dd>
+</dl>
+
+<h2 id="Assessments">Assessments</h2>
+
+<p>This "overview" module doesn't have any assessement because we haven't yet shown you any code.  We do hope at this point you have a good understanding of what sorts of functionality you can deliver using server-side programming and you have made a decision about what server-side web framework you will use to create your first website.</p>
diff --git a/files/id/learn/server-side/index.html b/files/id/learn/server-side/index.html
new file mode 100644
index 0000000000..b497257371
--- /dev/null
+++ b/files/id/learn/server-side/index.html
@@ -0,0 +1,59 @@
+---
+title: Server-side website programming
+slug: Learn/Server-side
+tags:
+ - Beginner
+ - CodingScripting
+ - Intro
+ - Landing
+ - Learn
+ - NeedsTranslation
+ - Server
+ - Server-side programming
+ - Topic
+ - TopicStub
+translation_of: Learn/Server-side
+---
+<div>{{LearnSidebar}}</div>
+
+<p class="summary">The <strong><em>Dynamic Websites </em></strong>–<em><strong> Server-side programming</strong></em> topic is a series of modules that show how to create dynamic websites; websites that deliver customised information in response to HTTP requests. The modules provide a generic introduction to server-side programming, along with specific beginner-level guides on how to use the Django (Python) and Express (Node.js/JavaScript) web frameworks to create basic applications.</p>
+
+<p>Most major websites use some kind of server-side technology to dynamically display different data as required. For example, imagine how many products are available on Amazon, and imagine how many posts have been written on Facebook? Displaying all of these using completely different static pages would be completely inefficient, so instead such sites display static templates (built using <a href="/en-US/docs/Learn/HTML">HTML</a>, <a href="/en-US/docs/Learn/CSS">CSS</a>, and <a href="/en-US/docs/Learn/JavaScript">JavaScript</a>), and then dynamically update the data displayed inside those templates when needed, e.g. when you want to view a different product on Amazon.</p>
+
+<p>In the modern world of web development, learning about server-side development is highly recommended.</p>
+
+<h2 id="Learning_pathway">Learning pathway</h2>
+
+<p>Getting started with server-side programming is usually easier than with client-side development, because dynamic websites tend to perform a lot of very similar operations (retrieving data from a database and displaying it in a page, validating user-entered data and saving it in a database, checking user permissions and logging users in, etc.), and are constructed using web frameworks that make these and other common web server operations easy.</p>
+
+<p>A basic knowledge of programming concepts (or of a particular programming language) is useful, but not essential. Similarly, expertise in client-side coding is not required, but a basic knowledge will help you work better with the developers creating your client-side web "front end".</p>
+
+<p>You will need to understand "how the web works". We recommend that you first read the following topics:</p>
+
+<ul>
+ <li><a href="/en-US/docs/Learn/Common_questions/What_is_a_web_server">What is a web server</a></li>
+ <li><a href="/en-US/docs/Learn/Common_questions/What_software_do_I_need">What software do I need to build a website?</a></li>
+ <li><a href="/en-US/docs/Learn/Common_questions/Upload_files_to_a_web_server">How do you upload files to a web server?</a></li>
+</ul>
+
+<p>With that basic understanding you'll be ready to work your way through the modules in this section. </p>
+
+<h2 id="Modules">Modules</h2>
+
+<p>This topic contains the following modules. You should start with the first module, then go on to one of the following modules, which show how to work with two very popular server-side languages using appropriate web frameworks . </p>
+
+<dl>
+ <dt><a href="/en-US/docs/Learn/Server-side/First_steps">Server-side website programming first steps</a></dt>
+ <dd>This module provides server-technology-agnostic information about server-side website programming, including answers to fundamental questions about server-side programming — "what it is", "how it differs from client-side programming", and "why it is so useful" — and an overview of some of the more popular server-side web frameworks and guidance on how to select the most suitable for your site. Lastly we provide an introductory section on web server security.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Django">Django Web Framework (Python)</a></dt>
+ <dd>Django is an extremely popular and fully featured server-side web framework, written in Python. The module explains why Django is such a good web server framework, how to set up a development environment and how to perform common tasks with it.</dd>
+ <dt><a href="/en-US/docs/Learn/Server-side/Express_Nodejs">Express Web Framework (Node.js/JavaScript)</a></dt>
+ <dd>Express is a popular web framework, written in JavaScript and hosted within the node.js runtime environment. The module explains some of the key benefits of this framework, how to set up your development environment and how to perform common web development and deployment tasks.</dd>
+</dl>
+
+<h2 id="See_also">See also</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Learn/Server-side/Node_server_without_framework">Node server without framework</a></dt>
+ <dd>This article provides a simple static file server built with pure Node.js, for those of you not wanting to use a framework.</dd>
+</dl>