Menulis aplikasi Django pertama anda, bagian 1Link to this heading
Mari kita belajar berdasarkan contoh.
Melalui tutorial ini, kami akan memandu anda melalui pembuatan aplikasi jejak pendapat dasar.
Dia akan terdiri dari dua bagian:
Situs umum yang membiarkan orang melihat jejak pendapat dan memilih mereka.
Situs admin yang membiarkan anda menambah, merubah, dan menghapus jejak pendapat.
Kami akan beranggapan anda telah mempunyai Django installed. Anda dapat memberitahu Django terpasang dan versi mana dengan menjalankan perintah berikut dalam sebuah shell prompt (ditunjukkan oleh awalan $):
$ python -m django --version
Jika Django telah terpasang, anda harus melihat versi dari pemasangan anda. Jika dia tidak, anda akan mendapatkan kesalahan mengatakan "Tidak ada modul bernama django".
Tutorial ini ditulis untuk Django 1.11 dan Phyton 3.4 atau kemudian. Jika versi DJango tidak cocok, anda dapat mengacu ke tutorial untuk versi Django anda dengan menggunakan pengganti versi di pojok bawah kanan halaman ini, atau perbaharui Django ke versi terbaru. Jika anda masih menggunakan Phyton 2.7, anda akan butuh menyesuaikan sedikit contoh kode , seperti digambarkan di komentar.
Lihat How to install Django untuk saran bagaimana memindahkan versi lama Django dan memasang satu yang baru.
Membuat proyekLink to this heading
Jika ini adalah pertama kali anda menggunakan Django, anda harus berhati-hati dari beberapa pengaturan awal. Yaitu, anda butuh membangkitkan-otomatis beberapa kode yang membangun Django project -- kumpulan dari pengaturan untuk contoh DJango, termasuk konfigurasi basisdata, pilihan khusus-Django dan pengaturan khusus-aplikasi.
Dari baris perintah, cd kedalam direktori dimana anda ingin menyimpan kode anda, lalu jalankan perintah berikut:
$ django-admin startproject mysite
Ini akan membuat direktori mysite di direktori anda saat ini. Jika itu tidak bekerja, lihat Masalah menjalankan django-admin.
Mari kita lihat seperti apa startproject dibuat:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
Berkas ini adalah:
Direktori akar
mysite/paling luar hanya mengandung untuk proyek anda. Namanya tidak masalah bagi Django; anda dapat menamai kembali ke apapun anda suka.manage.py: Sebuah kegunaan baris-perintah yang membiarkan anda berinteraksi dengan proyek Django ono di beragam jalan. Anda dapat membaca semua rincian tentangmanage.pydi django-admin dan manage.py.Direktori
mysite/sebelah dalam adalah paket Phyton sesungguhnya untuk proyek anda. Namanya adalah nama paket Phyton anda akan butuh untuk digunakan mengimpor apapun didalamnya (sebagai contohmysite.urls).mysite/__init__.py: Sebuah berkas kosong yang memberitahu Python bahwa pelipat ini harus mempertimbangkan paket Python. Jika anda adalah pemula Python, baca more about packages di dokumen resmi Python.mysite/settings.py: Pengaturan/konfigurasi untuk proyek Django ini. Pengaturan Django akan mengatakan anda semua tentang bagaimana pengaturan bekerja.mysite/urls.py: Deklarasi URL untuk proyek Django ini; "tabel isi" dari situs Ditenagai-Django anda. Anda dapat membaca lebih tentang URL di Pengirim URL.mysite/wsgi.py: Sebuah titik-masukan untuk peladen jaringan sesuai-WSGI untuk meladeni proyek anda. Lihat Bagaimana menyebarkan dengan WSGI untuk lebih rinci.
Peladen pengembanganLink to this heading
Mari kita periksa proyek Django anda bekerja. Perubahan di dalam direktori mysite terluar, jika anda belum siap, dan jalankan perintah berikut:
$ python manage.py runserver
Anda akan melihat keluaran berikut pada baris perintah:
Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. 09 Agu, 2026 - 15:50:53 Django version 1.11, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Anda telah memulai peladen pengembangan Django, peladen Jaringan ringan ditulis murni di Phyton. Kami telah memasukkan ini dengan Django sehingga anda dapat mengembangkan hal dengan cepat, tanpa harus berurusan dengan konfigurasi peladen produksi -- seperti Apache -- sampai anda siap untuk produksi.
Sekarang adalah waktu bagus untuk mencatat jangan gunakan peladen ini dalam menyerupai apapun lingkungan produksi. Ini hanya diperuntukkan untuk digunakan selama pengembangan. (Kami didalam bisnis pembuatan kerangka jaringan, bukan peladen Jaringan.)
Sekarang peladen sedang berjalan, kunjungi http://127.0.0.1:8000/ dengan perambah jaringan anda. Anda akan melihat halaman "Selamat datang ke Django", dalam nyaman, pastel cahaya-bitu. Dia bekerja!
Membuat aplikasi jejak pendapatLink to this heading
Sekarang bahwa lingkungan anda -- sebuah "proyek" -- sedang diatur, anda sudah untuk siap memulai pekerjaan.
Setiap aplikasi anda tulis dalam Django terdiri dari paket Phyton yang mengikuti ketentuan tertentu Django datang dengan kegunaan yang otomatis membangkitkan struktur direktori dasar dari sebuah aplikasi, sehingga anda dapat fokus pada menulis kode daripada membuat direktori.
Aplikasi anda dapat tinggal dimana saja pada Python path anda. Di tutorial ini, kami akan membuat jejak pendapat kami dekat berkas manage.py anda sehingga itu dapat diimpor sebagai modul tingkat-atas sendiri, daripada submodul dari mysite.
Untuk membuat aplikasi anda, pastikan anda berada di direktori sama sebagai manage.py dan ketik perintah ini:
$ python manage.py startapp polls
Itu akan membuat direktori polls, yang ditata seperti ini:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Struktur direktori ini akan merumahkan aplikasi jejak pendapat.
Tulis tampilan pertama andaLink to this heading
Mari kita menulis tampilan pertama. Buka berkas polls/views.py dan taruh kode Phyton berikut didalamnya:
polls/views.pyfrom django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Ini adalah kemungkinan tampilan sederhana di Django. Untuk memanggil tampilan, kami butuh memetakannya ke URL - dan untuk ini kami butuh URLconf.
Untuk membuat URLconf dalam direktori jejak pendapat, buat berkas disebut urls.py. Direktori aplikasi anda seharusnya kelihatan seperti:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
Di berkas polls/urls.py sertakan kode berikut:
polls/urls.pyfrom django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
Langkah selanjutnya adalah menunjuk akar URLconf pada modul polls.urls. Dalam mysite/urls.py, tambahkan impor untuk django.conf.urls.include dan masukkan sebuah include() di daftar urlpatterns, jadi anda mempunyai:
mysite/urls.pyfrom django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
Fungsi include() mengizinkan memberi petunjuk URLconf lain. Catat bahwa regular expression untuk fungsi include() tidak mempunyai sebuah $ (karakter cocok end-of-string) tetapi daripada garis miring. Kapanpun Django menjumpai include(), dia memotong apapun bagian dari URL dicocokkan ke titik itu dan mengirim deretan karakter tersisi ke URLconf disertakan untuk pengolahan lebih lanjut.
Ide dibelakang include() adalah membuatnya mudah untuk pasang-dan-main URL. Sejak jejak pendapat berada di URLconf sendiri (polls/urls.py), mereka dapat ditempatkan dibawah "/polls/", atau dibawah "/fun_polls/", atau dibawah "/content/polls/", atau jalur akar lain, dan aplikasi akan masih bekerja.
Anda sekarang telah mengikat sebuah tampilan index kedalam URLconf. Mari kita periksa dia bekerja, jalankan perintah berikut:
$ python manage.py runserver
Pergi ke http://localhost:8000/polls/ di perambah anda, dan anda seharusnya melihat teks "Halo, dunia. Anda sedang berada di index jejak pendapat.", yang anda tentukan di tampilan index.
Fungsi url() dilewati empat argumen, dua wajib: regex dan view, dan dua pilihan: kwargs, and name. Pada titik ini, sangatlah bernilai meninjau kembali untuk apa argumen ini.
url() argument: regexLink to this heading
Istilah "regex" adalah umum digunakan bentuk pendek berarti "regular expression", yang merupakan sintaksis untuk corak pencocokan di deretan karakter, atau di kasus ini, corak url. Django memulai regular expression pertama dan membuatnya turun ke bawah, membandingkan URL diminta terhadap setiap regular expression sampai dia menemukan satu yang cocok.
Catat bahwa regular expression ini tidak mencari parameter GET dan POST, atai nama ranah. Sebagai contoh, di permintaan ke https://www.example.com/myapp/, URLconf akan mencari myapp/. Di permintaan ke https://www.example.com/myapp/?page=3, URLconf akan juga mencari untuk myapp/.
Jika anda butuh bantuan dengan regular expression, lihat masukan Wikipedia dan dokumentasi dari modul re. Juga, buku O'Reilly "Mastering Regular Expressions" oleh Jeffrey Friedl sungguh hebat. Dalam praktiknya, bagaimanapun, anda tidak butuh menjadi ahli di regular expression, anda hanya butuh mengetahui bagaimana mengambil corak sederhana. Faktanya, regular expression rumit dapat mempunyai penampilan pencarian buruk, jadi anda mungkin jangan bergantung pada kekuatan penuh dari regex.
Akhirnya, catatan penampilan: regular expression ini disusun pertama kali modul URLconf dimuat. Mereka sangat cepat (selama pencarian tidak terlalu rumit seperti catatan diatas).
Tampilan url() argument:Link to this heading
Ketika Django menemukan kecocokan regular expression, Django memanggil fungsi tampilan yang ditentukan dengan obyek HttpRequest sebagai argumen pertama dan nilai "tertangkap" apapun dari regular expression sebagai argumen lain. Jika regex menggunakan penangkapan sederhana, nilai dilewatkan sebagai argumen penempatan; jika dia menggunakan penangkapan nama, nilai dilewatkan sebagai argumen kata kunci. Kami akan memberikan sebuah contoh dari ini sedikit.
url() argument: kwargsLink to this heading
Argumen kata kunci yang berubah-ubah dapat dilewatkan di kamus ke tampilan sasaran. Kami tidak akan menggunakan fitur Django ini di tutorial ini.
url() argument: nameLink to this heading
Menamai URL anda membiarkan anda menunjuk ke kejelasannya dari di tempat lain di Django, khususnya dari dalam cetakan. Fitur kuat ini mengizinkan anda membuat perubahan global pada corak URL dari proyek anda selagi hanya menyentuh berkas tunggal.
Ketika anda nyaman dengan permintaan dasar dan aliran tanggapan, baca bagian 2 dari tutorial ini utuk memulai bekerja dengan basisdata.