Memulai dengan Django – Pengantar dan Tutorial

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Django adalah kerangka kerja pengembangan cepat untuk aplikasi web, ditulis dengan Python.

Kerangka pengembangan adalah kerangka aplikasi, dengan seperangkat alat untuk membangun perangkat lunak dengan cepat, dan pendapat tentang bagaimana perangkat lunak harus dibangun.

Kerangka kerja mengurangi kode “boilerplate” dengan menyediakan fitur yang paling umum – konektivitas basis data, login pengguna, manajemen sesi, perutean permintaan. Ini diperlukan di hampir setiap aplikasi, terlepas dari tujuan spesifik aplikasi, dan mereka tidak perlu dirancang ulang untuk setiap proyek baru.

Kerangka pengembangan juga menyediakan arsitektur untuk sistem. Alih-alih menghabiskan waktu dan energi untuk memutuskan bagaimana mengatur kode (atau mengalami masalah yang tidak pernah berakhir karena gagal melakukannya), suatu kerangka kerja memiliki cara yang tepat untuk mengatur fitur, sehingga Anda bisa mulai membuat mereka.

Kami akan melihat seperti apa struktur itu saat kami berjalan menyiapkan aplikasi pertama.

Mulai

Satu-satunya hal yang benar-benar Anda butuhkan adalah akses ke internet, pengetahuan yang sangat mendasar tentang baris perintah, dan editor kode.

Sebagian besar pengguna Linux mungkin tahu cara mengakses Terminal mereka, tetapi di sini ada panduan cepat untuk terminal Linux jika Anda tidak. Jika Anda menggunakan Mac OS X, Anda memiliki baris perintah seperti Linux / Unix yang dapat diakses di aplikasi Terminal.

Baris perintah Windows agak berbeda dari yang ada di Mac OS X dan Linux (disebut bash).

Anda dapat menggunakan Windows Powershell, tetapi Anda harus “menerjemahkan” sedikit – tidak hanya di sini tetapi di sebagian besar tutorial dan panduan referensi lainnya.

Pendekatan termudah mungkin dengan hanya menginstal terminal bash.

Anda punya beberapa pilihan:

  • Cygwin: ini adalah kumpulan alat Linux / Unix untuk Windows, termasuk terminal bash.
  • Gitbash: Git untuk Windows hadir dengan implementasi bash. Anda mungkin ingin tetap menggunakan git (dan Github) untuk kontrol versi, jadi ini adalah solusi yang cukup mudah.
  • Windows 10 termasuk Bash shell berbasis Ubuntu, yang luar biasa. Dibutuhkan sedikit kerja untuk membuatnya bekerja.

Menginstal Semuanya

Ada beberapa langkah untuk menjalankan Django: Python, Mutakhirkan pengelola paket Python, atur lingkungan virtual Anda, dan instal Django.

Python

Jika Anda tidak memiliki Python di komputer, Anda memerlukannya. Lihat halaman Unduhan Python untuk tautan ke Python untuk semua sistem operasi utama.

Anda ingin Python 3, bukan Python 2. Anda dapat menggunakan Python 2 dengan Django, tetapi Python 3 adalah bahasa sekarang dan masa depan bahasa.

Jika Anda baru saja masuk ke Python dan Django, gunakan Python 3.

Anda mungkin sudah memiliki Python 2 di komputer Anda. Pada saat penulisan ini, Mac OS X dikirimkan bersama Python 2, dan beberapa distribusi Linux juga melakukannya. Instal Python 3 dan gunakan. (Memiliki dua versi Python di komputer Anda tidak akan menjadi masalah, seperti yang akan Anda lihat di langkah selanjutnya.)

Jika Anda tidak yakin versi Python yang Anda miliki, ketik python ke dalam baris perintah.

Itu akan memberitahumu. Misalnya, berikut ini adalah apa yang Anda lihat jika Anda menjalankan Python versi 3.5.1:

> ular sanca
Python 3.5.1 (v3.5.1: 37a07cee5969, 5 Des 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (titik 3)] di darwin
Tipe "Tolong", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.

Jika menjalankan python mengungkapkan v2, coba python3. Jika Anda menginstal Python 3, itu akan memberi tahu Anda.

Upgrade Pengelola Paket Python

Python dikirimkan bersama pip, manajer paket Python. Namun, Anda harus memutakhirkannya (bundel pemasangan Python tidak dapat ditingkatkan setiap kali pembaruan pip). Untungnya, pip melakukan upgrade sendiri dengan perintah terminal cepat:

> instal pip –upgrade pip

Lingkungan Virtual Python

Setiap proyek Python, termasuk proyek Django, biasanya akan melibatkan sejumlah paket pihak ketiga yang terpisah.

Jika Anda banyak menggunakan Python, pada akhirnya Anda akan memiliki konflik versi – proyek ini membutuhkan v4.3 sesuatu sementara proyek itu membutuhkan v5.1. Solusinya adalah lingkungan virtual Python.

Ada beberapa alat Lingkungan Virtual untuk Python. Kami menggunakan virtualenv. Pertama, instal dengan pip:

> pip instal virtualenv

Selanjutnya, siapkan Lingkungan Virtual untuk proyek Django Anda. Buat direktori baru yang akan menampung proyek Django Anda.

Direktori ini akan berisi direktori proyek Anda, dan hal-hal lain, jadi untuk menjaga diri Anda dari kebingungan mungkin lebih baik untuk memberikannya nama selain nama proyek Anda. Kami akan menyebut ini proyek django.

Buat direktori kontainer, kemudian jalankan virtualenv dari dalam direktori.

Saat menjalankan virtualenv, kami akan menentukan python3 dan memberi nama lingkungan (djenv), lalu mengaktifkan lingkungan virtual.

> mkdir django-projects
> cd django-projects
~ / Django-proyek > virtualenv -p python3 djenv
~ / Django-proyek > sumber djenv / bin / aktifkan
(djenv) ~ / django-projects >

Anda sekarang berada di lingkungan virtual bernama djenv. Setiap paket pip yang Anda instal atau tingkatkan hanya akan tersedia ketika Lingkungan Virtual ini diaktifkan.

Untuk menonaktifkan Lingkungan Virtual, cukup ketik nonaktifkan.

Catatan singkat tentang penamaan hal – kebanyakan dokumentasi untuk virtualenv, Django, dan Python secara umum menggunakan venv sebagai nama contoh mereka Lingkungan Virtual.

Melakukan hal itu sendiri dapat membingungkan, karena Anda mungkin membuat beberapa yang berbeda di komputer Anda, dan akan sangat membantu untuk mengingat yang mana.

Juga, venv adalah nama alat Lingkungan Virtual Python lain.

Pendekatan yang berguna adalah memberi nama lingkungan yang ada hubungannya dengan proyek (seperti djenv untuk lingkungan Django), tetapi Anda dapat memberi nama apa pun yang Anda suka.

Instal Django

Ini cukup mudah:

(djenv) ~ / django-projects > pip instal Django

Anda mungkin ingin menonaktifkan lingkungan virtual Anda dan menginstal Django seluruh sistem. Terserah kamu.

Either way, pip akan mulai menginstal Django dan semua dependensinya. Ini bisa memakan waktu.

Memulai proyek

“Proyek” dipahami (umumnya) sebagai situs web tunggal yang lengkap (atau berpotensi kumpulan situs).

Situs mungkin memiliki beberapa fungsi yang berbeda – blog, forum, toko, obrolan bantuan.

Masing-masing disebut “aplikasi” (atau hanya “aplikasi”). Jadi proyek adalah kumpulan aplikasi.

Ini penting untuk bagaimana Anda menyusun berbagai hal, tetapi juga penting untuk bagaimana Anda menyebutkan sesuatu.

Bayangkan Anda ingin membangun aplikasi web baru yang memungkinkan orang berbagi foto. Dalam pikiran Anda, seluruh situs adalah “aplikasi.”

Tetapi jika Anda menginisialisasi proyek Django Anda dengan nama photo-share-app (atau apa pun), Anda akan menjadi bingung dengan nama direktori duplikat Anda.

Struktur proyek Django

Struktur direktori proyek Django terlihat seperti ini:

– /Nama Proyek/
– Nama Proyek/
– nama aplikasi/
– nama aplikasi/
– nama aplikasi/

Saat Anda pertama kali menginisialisasi proyek Anda, Anda akan mendapatkan direktori proyek tingkat atas, dan yang kedua di dalamnya.

Level atas bertindak sebagai wadah untuk sisanya. Tingkat kedua memiliki file konfigurasi untuk proyek secara keseluruhan.

Aplikasi baru yang Anda bangun akan berada di satu (atau lebih) direktori aplikasi tambahan.

Ini menciptakan beberapa gangguan. Dengan asumsi Anda sedang membangun beberapa aplikasi web baru yang luar biasa dengan nama yang luar biasa (sebut saja dengan itu), jika Anda tidak memikirkannya, Anda akan berakhir seperti ini:

– / dengan /
– dengan /
– ?… apa yang harus saya sebut hal yang saya bangun …? /

Ini sarannya:

– / wiht_site /
– wiht_site /
– wiht_app /

Ini membuat semuanya jelas dan mudah diingat. Selain itu, membuatnya mudah untuk secara sederhana menghubungkan fitur situs web generik yang ingin Anda gunakan.

Atau Anda dapat membuat aplikasi khusus tambahan untuk diri sendiri, jika masuk akal sebagai modul mandiri:

– / wiht_site /
– wiht_site /
– wiht_app /
– pihak ketiga-blog-app /
– pihak ketiga-forum-app /
– dengan-crm-app /

Dokumen Django menggunakan situs saya, dan itu bagus untuk contoh. Anda akan menginginkan nama unik untuk setiap proyek.

(Tentu saja, Anda tidak perlu membuat aplikasi baru untuk menggunakan Django. Anda hanya dapat mengatur proyek dan menggunakan koleksi aplikasi yang ada.

Anda bisa mendapatkan situs web multi fungsi yang kompleks dan berjalan cukup cepat dengan cara ini, dan nanti memiliki fleksibilitas untuk menambahkan aplikasi yang dibuat oleh pelanggan.)

(Akhirnya) Inisialisasi Proyek Anda

Di dalam direktori “container” apa pun (kami menggunakan / django-proyek di atas), dan dengan Lingkungan Virtual Anda diaktifkan, inisialisasi proyek baru Anda dengan perintah django-admin.

(djenv) ~ / django-projects > django-admin startproject wiht_site

Sekarang kamu punya:

– / wiht_site /
– manage.py
– wiht_site /
– __init__.py
– settings.py
– urls.py
– wsgi.py

Sekarang jalankan server uji untuk memastikan semuanya terjadi dengan benar.

(djenv) ~ / django-projects > cd wiht_site
(djenv) ~ / django-projects / wiht_site > python manage.py runserver

Anda akan mendapatkan beberapa hasil seperti:

Melakukan pemeriksaan sistem…

Pemeriksaan sistem diidentifikasi tidak ada masalah (0 dibungkam).

Anda memiliki migrasi yang belum diterapkan; aplikasi Anda mungkin tidak berfungsi dengan benar sampai diterapkan.
Jalankan ‘python manage.py migrate’ untuk menerapkannya.

22 April 2016 – 17:45:53
Django versi 1.9, menggunakan pengaturan ‘wiht_site.settings’
Memulai server pengembangan di http://127.0.0.1:8000/
Keluar dari server dengan CONTROL-C.

Buka http://127.0.0.1:8000 di browser, dan Anda akan melihat sesuatu berfungsi: pesan “Selamat datang di Django”.

Menginisialisasi Aplikasi Pertama Anda

Dari sini, anggap kita selalu berada di direktori wiht_site tingkat atas (subdirektori) dengan lingkungan djenv diaktifkan.

Ketika Anda melihat ini dalam contoh:

>

Asumsikan Anda ada di sini:

(Djenv) ~ / Django-proyek / wiht-app >

Buat aplikasi baru dengan manage.py.

> python manage.py startapp wiht_app

Ini akan membuat direktori baru, / wiht_app /, dengan konten berikut:

– __init__.py
– admin.py
– apps.py
– migrasi /
– __init__.py
– models.py
– tests.py
– views.py

Sekarang Anda perlu “menginstal” aplikasi. Buka /wiht_site/wiht_site/settings.py, dan temukan INSTALLED_APPS. Ini perlu diedit untuk memasukkan aplikasi baru Anda.

INSTALLED_APPS = [
‘wiht_app’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
]

Mengembangkan Sesuatu

Aplikasi Django memiliki sesuatu yang dekat dengan arsitektur Model-View-Controller, yang kadang-kadang disebut dokumentasi Model Django.

Ini mengarah pada pola pengembangan iteratif yang mudah diadopsi:

  • bekerja pada Model, menentukan jenis data apa yang akan dilacak dan bagaimana mereka berhubungan satu sama lain;
  • bekerja pada View, mendefinisikan bagaimana data harus diakses dan apa yang harus dilakukan ketika data dimanipulasi;
  • bekerja pada Templat, menentukan bagaimana data terlihat ketika ditampilkan kepada pengguna atau dikonsumsi oleh aplikasi lain.
Model dan Migrasi

Membangun fitur baru biasanya dimulai dengan membuat model. Model adalah kelas (dalam arti OOP) yang mendefinisikan berbagai objek di sistem Anda dan bagaimana mereka saling berhubungan. Jadi, dalam aplikasi blog, Anda mungkin memiliki model untuk Posting, Halaman, Kategori, Komentar, dan sebagainya – dan mungkin komentar adalah posting subkelas (sejenis), dan mungkin posting dan halaman adalah subkelas dari ContentItem.

Model ditulis dalam file models.py dari setiap aplikasi. Inilah awal dari model yang sangat sederhana untuk posting blog.

dari model impor django.db
dari django.contrib.auth.models impor Pengguna

# Buat model Anda di sini.
class Post (models.Model):

title = models.CharField (
max_length = 100,
)

slug = models.SlugField (
unik = Benar,
)

excerpt = models.TextField (
max_length = 255,
)

content = models.TextField (
blank = True,
)

author = models.ForeignKey (
Pengguna,
)

dibuat = models.DateTimeField (
auto_now_add = Benar,
)

def __str __ (mandiri):
kembalikan self.title

Django memiliki Object Relational Mapper (ORM) sendiri, yang menyediakan lapisan abstraksi ke database. Ini memungkinkan Anda untuk mendefinisikan model data Anda tanpa referensi ke sistem manajemen basis data tertentu, dan tanpa harus menulis SQL.

Saat Anda menambahkan model, Anda membuat dan menjalankan migrasi. Migrasi adalah set yang dibuat secara otomatis untuk perintah SQL yang mengubah desain database agar sesuai dengan model – ORM Django menerjemahkan model Anda ke dalam migrasi SQL.

Sebelum Anda melakukannya, Anda ingin mengatur basis data dan menghubungkannya. Anda memiliki banyak opsi di sini, tetapi sebagian besar pengguna Django lebih suka PostgreSQL, dan ada alat PostgreSQL khusus untuk Django yang tidak tersedia untuk database lain.

Setelah database Anda berjalan, Anda dapat bermigrasi.

> pengelolaan python manage.py
> migrasi python manage.py

Admin

Django menyediakan tampilan Admin otomatis pada data Anda, sehingga Anda dapat melakukan operasi CRUD dasar dengan model Anda segera. Dan jika UI pengeditan Anda tidak terlalu rumit, Anda bisa menggunakan situs Admin tanpa membangun Tampilan pengeditan Anda sendiri. Yang harus Anda lakukan adalah mendaftarkan model dengan modul Admin. Ini dilakukan di admin.py, di dalam direktori aplikasi Anda.

dari admin impor django.contrib
dari .models import Post

admin.site.register (Posting)

Sekarang untuk masuk dan mengakses Admin, buat superuser dari baris perintah.

> python manage.py createuperuser

Ikuti petunjuk di terminal untuk nama pengguna, email, dan kata sandi. Kemudian mulai server:

> python manage.py runserver

Dan Anda harus bisa masuk di http://127.0.0.1:8000/admin/. Jika semuanya dikonfigurasi dengan benar, Anda harus dapat melihat, menambah, mengedit, dan menghapus posting blog sederhana.

Sekarang akan menjadi saat yang tepat untuk membuat beberapa posting contoh. Ini akan membuat langkah selanjutnya lebih bermakna.

Pandangan

Di Django, “Tampilan” bukan kode tampilan ujung depan (yang disebut “Templat”). Apa yang disebut Django View lebih seperti “Controller” dalam kerangka kerja lain. Ini adalah fungsi yang menerima Permintaan HTTP sebagai argumen, dan mengembalikan Respons. Biasanya, responsnya adalah konten halaman web yang kemudian dapat diakses dari Templat; respons juga bisa berupa redirect, pesan kesalahan, file, atau yang lainnya.

Situasi yang paling umum adalah Anda ingin mengirim Permintaan untuk konten tertentu (misalnya, satu posting tertentu), dan kemudian mendapatkan kembali semua data yang terkait dengan konten tersebut (judul, kutipan, konten, penulis). Situasi umum lainnya adalah Anda ingin menampilkan daftar item konten, seperti di halaman depan blog atau umpan berita.

Django menyediakan Tampilan Generik bawaan untuk menyelesaikannya dengan cepat. Dua yang akan kita gunakan adalah ListView dan DetailView. Jika Anda ingin memperluasnya, atau membuat tampilan sendiri, Anda akan melakukannya di views.py, tetapi kami akan menggunakannya apa adanya untuk saat ini.

Sekarang kita hanya perlu memetakan pandangan itu ke URL. Di /wiht_site/urls.py, Anda harus menyertakan pemetaan URL khusus aplikasi Anda.

dari url import django.conf.urls, sertakan
dari admin impor django.contrib

urlpatterns = [
url (r ‘^ admin /’, admin.site.urls),
url (r ‘^’, termasuk (‘wiht_app.urls’)),
]

Kemudian edit urls.py aplikasi Anda.

dari url import django.conf.urls, sertakan
dari. impor tampilan
dari django.views.generic import ListView, DetailView
dari .models import Post

urlpatterns = [
url (
r ‘^ blog /

Fungsi url () yang mendefinisikan setiap pola memiliki serangkaian argumen yang dipisahkan koma:

  • Ekspresi Reguler yang menetapkan pola URL untuk mencocokkan permintaan masuk dengan;
  • Tampilan yang ditentukan, dengan argumen:
    • Model;
    • nama file templat;
  • nama pola url ini.

Pola di atas cocok dengan pola / blog / dan / blog / post-slug / URL ke ListView dan DetailView, lalu tentukan Templatnya (index.html dan post.html).

Templat

Yang tersisa adalah membuat templat untuk menampilkan konten ini. Django menggunakan templating Jinja.

Buat tiga file baru:

/wiht_site/wiht_app/templates/wiht_app/main.html

{% blokir konten%}
{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/index.html

{% meluas "wiht_app / main.html" %}

{% blokir konten%}

Posting

{% untuk entri di object_list%}

{{entry.title}}

{{entry.excerpt}}

{% endfor%}

{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/post.html

{% meluas "wiht_app / main.html" %}

{% blokir konten%}

{{post.title}}

{{post.author}}
Diposting di: {{post.created}}
{{post.content}}

{% endblock%}

Selamat, Anda seharusnya sudah memiliki aplikasi blog yang berfungsi.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki lebih banyak panduan, tutorial, dan infografis yang berkaitan dengan pengkodean dan pengembangan:

  • Pengenalan Python, Sumber Daya, dan FAQ: artikel ini berisi sejumlah sumber daya untuk membantu Anda menjadi Python pro.
  • Primer Antarmuka Gateway Server Web: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengantar Ruby on Rails: artikel ini akan memperkenalkan Anda pada alternatif untuk Python dan Django.

,
ListView.as_view (
queryset = Post.objects.all (). order_by (“dibuat”) [: 50],
template_name = ”wiht_app / index.html”
),
name = ’post-list’
),
url (
r’blog / (? P [a-zA-Z0-9] + (?: – [a-zA-Z0-9] +) *) / Fungsi url () yang mendefinisikan setiap pola memiliki serangkaian koma yang dipisahkan argumen:

  • Ekspresi Reguler yang menetapkan pola URL untuk mencocokkan permintaan masuk dengan;
  • Tampilan yang ditentukan, dengan argumen:
    • Model;
    • nama file templat;
  • nama pola url ini.

Pola di atas cocok dengan pola / blog / dan / blog / post-slug / URL ke ListView dan DetailView, lalu tentukan Templatnya (index.html dan post.html).

Templat

Yang tersisa adalah membuat templat untuk menampilkan konten ini. Django menggunakan templating Jinja.

Buat tiga file baru:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Selamat, Anda seharusnya sudah memiliki aplikasi blog yang berfungsi.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki lebih banyak panduan, tutorial, dan infografis yang berkaitan dengan pengkodean dan pengembangan:

  • Pengenalan Python, Sumber Daya, dan FAQ: artikel ini berisi sejumlah sumber daya untuk membantu Anda menjadi Python pro.
  • Primer Antarmuka Gateway Server Web: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengantar Ruby on Rails: artikel ini akan memperkenalkan Anda pada alternatif untuk Python dan Django.

,
DetailView.as_view (
model = Posting,
template_name ="wiht_app / post.html"),
nama ="pos"
)
]

Fungsi url () yang mendefinisikan setiap pola memiliki serangkaian argumen yang dipisahkan koma:

  • Ekspresi Reguler yang menetapkan pola URL untuk mencocokkan permintaan masuk dengan;
  • Tampilan yang ditentukan, dengan argumen:
    • Model;
    • nama file templat;
  • nama pola url ini.

Pola di atas cocok dengan pola / blog / dan / blog / post-slug / URL ke ListView dan DetailView, lalu tentukan Templatnya (index.html dan post.html).

Templat

Yang tersisa adalah membuat templat untuk menampilkan konten ini. Django menggunakan templating Jinja.

Buat tiga file baru:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Selamat, Anda seharusnya sudah memiliki aplikasi blog yang berfungsi.

kupon hosting web

Mencari banyak hal tentang hosting Django?
A2 Hosting memberi peringkat # 1 dalam tes kecepatan dan kinerja terbaru kami. Saat ini Anda dapat menghemat hingga 50% pada paket yang berorientasi pada pengembang.
Gunakan tautan diskon ini
untuk mendapatkan kesepakatan.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki lebih banyak panduan, tutorial, dan infografis yang berkaitan dengan pengkodean dan pengembangan:

  • Pengenalan Python, Sumber Daya, dan FAQ: artikel ini berisi sejumlah sumber daya untuk membantu Anda menjadi Python pro.
  • Primer Antarmuka Gateway Server Web: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengantar Ruby on Rails: artikel ini akan memperkenalkan Anda pada alternatif untuk Python dan Django.
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me