Menulis aplikasi Django pertama anda, bagian 1

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
...\> py -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".

This tutorial is written for Django 5.1, which supports Python 3.10 and later. If the Django version doesn't match, you can refer to the tutorial for your version of Django by using the version switcher at the bottom right corner of this page, or update Django to the newest version. If you're using an older version of Python, check Versi Phyton apa dapat Saya gunakan dengan Django? to find a compatible version of Django.

Dimana mendapatkan bantuan:

Jika anda memiliki masalah melalui tutorial ini, harap geser ke Getting Help bagian dari FAQ.

Membuat proyek

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.

From the command line, cd into a directory where you'd like to store your code and create a new directory named djangotutorial. (This directory name doesn't matter to Django; you can rename it to anything you like.)

$ mkdir djangotutorial
...\> mkdir djangotutorial

Then, run the following command to bootstrap a new Django project:

$ django-admin startproject mysite djangotutorial
...\> django-admin startproject mysite djangotutorial

This will create a project called mysite inside the djangotutorial directory. If it didn't work, see Masalah menjalankan django-admin.

Catatan

Anda akan butuh menghindari penamaan proyek setelah memasang-tetap komponen Phyton atau Django. Khususnya, ini berarti anda harus menghindari menggunakan nama seperti django (yang akan bertentangan dengan Django itu sendiri) atau test (yang bertentangan dengan paket Phyton memasang-tetap).

Let's look at what startproject created:

djangotutorial/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

Berkas ini adalah:

  • manage.py: Sebuah kegunaan baris-perintah yang membiarkan anda berinteraksi dengan proyek Django ono di beragam jalan. Anda dapat membaca semua rincian tentang manage.py di django-admin dan manage.py.

  • mysite/: A directory that is the actual Python package for your project. Its name is the Python package name you'll need to use to import anything inside it (e.g. mysite.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/asgi.py: Sebuah titik-masukan untukpeladen jaringan cocok-ASGI untuk melayani proyek anda. Lihat Bagaimana mengembangkan dengan ASGI untuk rincian lebih.

  • mysite/wsgi.py: Sebuah titik-masukan untuk peladen jaringan sesuai-WSGI untuk meladeni proyek anda. Lihat Bagaimana menyebarkan dengan WSGI untuk lebih rinci.

Peladen pengembangan

Let's verify your Django project works. Change into the djangotutorial directory, if you haven't already, and run the following commands:

$ python manage.py runserver
...\> py 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.

Desember 17, 2024 - 15:50:53
Django version 5.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Catatan

Abaikan peringatan tentang perpindahan basisdata tidak diberlakukan untuk sekarang; kami akan berurusan dengan basisdata segera.

Sekarang peladen sedang berjalan, kunjungi http://127.0.0.1:8000/ dengan peramban jaringan anda. Anda akan melihat halaman "Congratulations!", dengan sebuah roket meluncur. Itu bekerja!

Anda telah memulai peladen pengembangan Django, peladen jaringan ringan ditulis dalam Python. Kami telah menyertakan ini dalam Django sehingga anda dapt mengembangkan hal-hal dengan cepat, tanpa harus berurusan dengan konfigurasi peladen produksi-- seperti Apache -- sampai anda siap untuk produksi.

Sekarang adalah waktu bagus untuk dicatat: jangan gunakan peladen ini dalam dalam segala hal yang menyerupai lingkungan produksi. Itu hanya diperuntukkan untuk penggunaan selagi pengembangan. (Kami berada di bisnis dari membuat kerangka kerja jaringan, bukan peladen jaringan.)

(To serve the site on a different port, see the runserver reference.)

Otomatis memuat kembali runserver

Peladen pengembangan otomatis memuat kembali kode Phyton untuk setiap permintaan sesuai kebutuhan. Anda tidak butuh memulai kembali peladen untuk perubahan kode agar berpengaruh. Bagaimanapun, beberapa tindakan seperti menambahkan berkas tidak akan memicu mulai kembali, sehingga anda harus memulai kembali peladen dalam kasus ini.

Membuat aplikasi jejak pendapat

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.

Proyek lawan aplikasi

Apa perbedaan diantara proyek dan aplikasi? Aplikasi adalah aplikasi jaringan yang melakukan sesuatu -- yaitu, sitem blog, basisdata dari rekaman umum atau aplikasi poling kecil. Proyek adalah kumpulan dari konfigurasi dan aplikasi untuk situs jaringan tertentu. Proyek dapat mengandung banyak aplikasi. Sebuah aplikasi dapat berada dalam banyak proyek.

Your apps can live anywhere in your Python path. In this tutorial, we'll create our poll app inside the djangotutorial folder.

Untuk membuat aplikasi anda, pastikan anda berada di direktori sama sebagai manage.py dan ketik perintah ini:

$ python manage.py startapp polls
...\> py manage.py startapp polls

That'll create a directory polls, which is laid out like this:

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 anda

Mari kita menulis tampilan pertama. Buka berkas polls/views.py dan taruh kode Phyton berikut didalamnya:

polls/views.py
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

This is the most basic view possible in Django. To access it in a browser, we need to map it to a URL - and for this we need to define a URL configuration, or "URLconf" for short. These URL configurations are defined inside each Django app, and they are Python files named urls.py.

To define a URLconf for the polls app, create a file polls/urls.py with the following content:

polls/urls.py
from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

Your app directory should now look like:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

The next step is to configure the global URLconf in the mysite project to include the URLconf defined in polls.urls. To do this, add an import for django.urls.include in mysite/urls.py and insert an include() in the urlpatterns list, so you have:

mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("polls/", include("polls.urls")),
    path("admin/", admin.site.urls),
]

The path() function expects at least two arguments: route and view. The include() function allows referencing other URLconfs. Whenever Django encounters include(), it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.

Ide dibelakan include() adalah membuat itu mudah pasang-dan-mainkan URL. Sejak jejak pendapat dalam URLconf mereka sendiri (polls/urls.py), mereka dapat dipasang dibawah "/polls/", atau dibawah "/fun_polls/", atau dibawah "/content/polls/", atau jalur akar lain apapun, dan aplikasi masih bisa bekerja.

Kapan menggunakan include()

You should always use include() when you include other URL patterns. The only exception is admin.site.urls, which is a pre-built URLconf provided by Django for the default admin site.

Anda sekarang harus mengikat tampilan index kedalam URLconf. Periksa pekerjaannya dengan perintah berikut:

$ python manage.py runserver
...\> py 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.

Laman tidak ditemukan?

JIka anda mendapat sebuah kesalahan halaman disini, periksa bahwa anda akan ke http://localhost:8000/polls/ dan bukan http://localhost:8000/.

Ketika anda nyaman dengan permintaan dasar dan aliran tanggapan, baca bagian 2 dari tutorial ini utuk memulai bekerja dengan basisdata.

Back to Top