Bermula dengan Django – Pengenalan dan Tutorial

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


Django adalah kerangka pengembangan pesat untuk aplikasi web, ditulis dalam Python.

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

Kerangka kerja mengurangkan kod “boilerplate” dengan menyediakan ciri yang paling umum – penyambungan pangkalan data, log masuk pengguna, pengurusan sesi, perutean permintaan. Ini diperlukan di hampir setiap aplikasi, terlepas dari tujuan khusus aplikasi, dan tidak perlu didesain semula untuk setiap proyek baru.

Kerangka pembangunan juga menyediakan seni bina untuk sistem. Daripada menghabiskan masa dan tenaga untuk memutuskan bagaimana mengatur kod (atau mempunyai masalah yang tidak pernah berhenti daripada gagal melakukannya), kerangka kerja mempunyai cara yang tepat untuk mengatur ciri, jadi anda boleh mula membuatnya.

Kita akan melihat seperti apa struktur itu semasa kita menyiapkan aplikasi pertama.

Bermula

Satu-satunya perkara yang sangat anda perlukan adalah akses ke internet, pengetahuan asas perintah yang sangat asas, dan penyunting kod.

Sebilangan besar pengguna Linux mungkin tahu cara mengakses Terminal mereka, tetapi berikut adalah panduan ringkas ke terminal Linux sekiranya anda tidak. Sekiranya anda menggunakan Mac OS X, anda mempunyai baris perintah seperti Linux / Unix yang dapat diakses di aplikasi Terminal.

Baris arahan Windows sedikit berbeza dari yang terdapat pada Mac OS X dan Linux (disebut bash).

Anda boleh menggunakan Windows Powershell, tetapi anda harus “terjemahkan” sedikit – bukan hanya di sini tetapi di kebanyakan tutorial dan panduan rujukan lain.

Pendekatan paling mudah adalah dengan hanya memasang terminal bash.

Anda mempunyai beberapa pilihan:

  • Cygwin: ini adalah koleksi alat Linux / Unix untuk Windows, termasuk terminal bash.
  • Gitbash: Git untuk Windows dilengkapi dengan pelaksanaan bash. Anda mungkin ingin menggunakan git (dan Github) untuk kawalan versi, jadi ini adalah penyelesaian yang cukup mudah.
  • Windows 10 merangkumi shell Bash berasaskan Ubuntu, yang sangat mengagumkan. Ia memerlukan sedikit usaha untuk menjadikannya berfungsi.

Memasang Semuanya

Terdapat sejumlah langkah untuk menjalankan Django: Python, Tingkatkan pengurus pakej Python, atur persekitaran maya anda, dan pasang Django.

Python

Sekiranya anda tidak mempunyai Python di komputer anda, anda memerlukannya. Lihat halaman Muat turun Python untuk pautan ke Python untuk semua sistem operasi utama.

Anda mahukan Python 3, bukan Python 2. Anda boleh menggunakan Python 2 dengan Django, tetapi Python 3 adalah masa kini dan masa depan bahasa.

Sekiranya anda baru memasuki Python dan Django, gunakan Python 3.

Anda mungkin sudah mempunyai Python 2 di komputer anda. Pada penulisan ini, Mac OS X dihantar bersama Python 2, dan beberapa pengedaran Linux juga berlaku. Pasang Python 3 dan gunakannya. (Memiliki dua versi Python di komputer anda tidak akan menjadi masalah, seperti yang akan anda lihat pada langkah seterusnya.)

Sekiranya anda tidak pasti versi Python yang anda miliki, taipkan python ke baris arahan.

Ia akan memberitahu anda. Sebagai contoh, berikut adalah apa yang anda akan lihat jika anda menjalankan Python versi 3.5.1:

> ular sawa
Python 3.5.1 (v3.5.1: 37a07cee5969, 5 Dis 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. bina 5666) (titik 3)] di darwin
Jenis "menolong", "hak cipta", "kredit" atau "lesen" untuk maklumat lanjut.

Sekiranya menjalankan python menunjukkan v2, cubalah python3. Sekiranya anda memasang Python 3, itu mesti memberitahu anda.

Tingkatkan Pengurus Pakej Python

Python dihantar dengan pip, pengurus pakej Python. Walau bagaimanapun, anda perlu meningkatkannya (kumpulan pemasangan Python tidak akan ditingkatkan setiap kali kemas kini pip). Nasib baik, pip meningkatkan diri dengan perintah terminal cepat:

> memasang pip – menaikkan pip

Persekitaran Maya Python

Mana-mana projek Python, termasuk projek Django, biasanya akan melibatkan sejumlah pakej pihak ketiga yang berasingan.

Sekiranya anda menggunakan Python banyak, anda akhirnya akan mengalami konflik versi – projek ini memerlukan v4.3 sesuatu sementara projek itu memerlukan v5.1. Penyelesaiannya ialah persekitaran maya Python.

Terdapat beberapa alat Lingkungan Maya untuk Python. Kami menggunakan virtualenv. Pertama, pasangkannya dengan pip:

> pip pasang virtualenv

Seterusnya, sediakan Lingkungan Maya untuk projek Django anda. Buat direktori baru yang akan menempatkan projek Django anda.

Direktori ini akan mengandungi direktori projek anda, dan perkara-perkara lain, jadi untuk mengelakkan diri dari keliru, sebaiknya berikan nama selain nama projek anda. Kami akan memanggil projek django yang satu ini.

Buat direktori kontena, kemudian jalankan virtualenv dari dalam direktori.

Semasa menjalankan virtualenv, kami akan menentukan python3 dan memberi nama kepada lingkungan (djenv), kemudian aktifkan persekitaran maya.

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

Anda kini berada dalam persekitaran maya bernama djenv. Sebarang pakej pip yang anda pasang atau tingkatkan hanya akan tersedia apabila Persekitaran Maya ini diaktifkan.

Untuk menyahaktifkan Alam Sekitar Maya, ketik nyahaktifkan.

Catatan ringkas mengenai penamaan perkara – kebanyakan dokumentasi untuk virtualenv, Django, dan Python pada umumnya menggunakan venv sebagai nama contohnya Alam Sekitar Maya.

Melakukannya sendiri boleh membingungkan, kerana anda mungkin membuat beberapa yang berbeza di komputer anda, dan sangat berguna untuk mengingat yang mana.

Juga, venv adalah nama alat Persekitaran Maya Python yang lain.

Pendekatan yang berguna adalah menamakan persekitaran yang ada hubungannya dengan projek (seperti djenv untuk persekitaran django), tetapi anda boleh menamakan apa sahaja yang anda suka.

Pasang Django

Ini cukup mudah:

(djenv) ~ / django-projek > pip pasang django

Anda mungkin ingin menyahaktifkan persekitaran maya anda dan memasang Django di seluruh sistem. Terpulang pada anda.

Walau apa pun, pip akan mula memasang Django dan semua pergantungannya. Ini mungkin memerlukan sedikit masa.

Memulakan projek

“Projek” difahami (secara umum) sebagai laman web tunggal, lengkap (atau berpotensi untuk sekumpulan laman web).

Laman web mungkin mempunyai beberapa fungsi yang berbeza – blog, forum, kedai, sembang bantuan.

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

Ini penting untuk bagaimana anda menyusun sesuatu, tetapi juga penting untuk bagaimana anda menamakan sesuatu.

Bayangkan anda mahu membina aplikasi web baru yang membolehkan orang berkongsi foto. Dalam fikiran anda, keseluruhan laman web adalah “aplikasi”.

Tetapi jika anda menginisialisasi projek Django anda dengan nama photo-share-app (atau apa sahaja), anda akan keliru dengan nama direktori yang digandakan anda.

Struktur projek Django

Struktur direktori projek Django kelihatan seperti ini:

– /Nama Projek/
– Nama Projek/
– nama aplikasi /
– nama aplikasi /
– nama aplikasi /

Semasa pertama kali memulakan projek anda, anda akan mendapat direktori projek peringkat teratas, dan yang kedua di dalamnya.

Tingkat atas berfungsi sebagai wadah untuk selebihnya. Tahap kedua mempunyai fail konfigurasi untuk projek secara keseluruhan.

Aplikasi baru yang anda bina akan ada dalam satu (atau lebih) direktori aplikasi tambahan.

Ini menimbulkan beberapa kegusaran. Dengan andaian anda membuat beberapa aplikasi web baru yang luar biasa dengan nama yang hebat (mari kita panggilnya), jika anda tidak memikirkannya, anda akan berakhir seperti ini:

– / dengan /
– dengan /
– ?… apa yang harus saya sebut benda yang saya bina …? /

Berikut adalah cadangan:

– / dengan laman web /
– dengan laman web /
– dengan_app /

Ini menjadikan semuanya jelas dan senang diingat. Juga, memudahkan anda hanya menggunakan mana-mana ciri laman web generik yang ingin anda gunakan.

Atau anda boleh membina aplikasi khas tambahan untuk diri anda, jika ia masuk akal sebagai modul yang berdiri sendiri:

– / dengan laman web /
– dengan laman web /
– dengan_app /
– aplikasi-blog-pihak ketiga /
– aplikasi-forum-pihak ketiga /
– dengan aplikasi-crm /

Dokumen Django menggunakan laman web saya, dan itu baik untuk contoh. Anda mahukan nama yang unik untuk setiap projek.

(Sudah tentu, anda tidak perlu membuat aplikasi baru untuk menggunakan Django. Anda hanya boleh membuat projek dan menggunakan koleksi aplikasi yang ada.

Anda boleh membina laman web pelbagai fungsi yang kompleks dan berjalan dengan cepat dengan cara ini, dan kemudian mempunyai kelonggaran untuk menambahkan aplikasi buatan pelanggan.)

(Akhirnya) Memulakan Projek Anda

Di dalam apa sahaja direktori “kontena” (kami menggunakan / django-projek di atas), dan dengan Alam Sekitar Maya anda diaktifkan, mulakan projek baru anda dengan perintah django-admin.

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

Sekarang anda mempunyai:

– / dengan laman web /
– menguruskan.py
– dengan laman web /
– __init__.py
– tetapan.py
– urls.py
– wsgi.py

Sekarang jalankan pelayan ujian untuk memastikan semuanya berlaku dengan betul.

(djenv) ~ / django-projek > cd wiht_site
(djenv) ~ / django-projek / wiht_site > python management.py runerver

Anda akan mendapat beberapa output seperti:

Melakukan pemeriksaan sistem…

Pemeriksaan sistem mengenal pasti tiada masalah (0 dibungkam).

Anda mempunyai migrasi yang tidak berlaku; aplikasi anda mungkin tidak berfungsi dengan baik sehingga ia digunakan.
Jalankan ‘python management.py migrate’ untuk menggunakannya.

22 April 2016 – 17:45:53
Django versi 1.9, menggunakan tetapan ‘wiht_site.settings’
Memulakan pelayan pembangunan di http://127.0.0.1:8000/
Keluar dari pelayan dengan CONTROL-C.

Buka http://127.0.0.1:8000 di penyemak imbas, dan anda akan melihat sesuatu yang berfungsi: mesej “Selamat Datang ke Django”.

Memulakan Aplikasi Pertama anda

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

Apabila anda melihatnya dalam contoh:

>

Andaikan anda berada di sini:

(djenv) ~ / django-projek / tanpa aplikasi >

Buat aplikasi baru dengan management.py.

> python management.py startapp wiht_app

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

– __init__.py
– admin.py
– apps.py
– penghijrahan /
– __init__.py
– model.py
– tests.py
– pandangan.py

Sekarang anda perlu “memasang” aplikasi. Buka /wiht_site/wiht_site/settings.py, dan cari 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’,
]

Membangunkan Sesuatu

Aplikasi Django mempunyai sesuatu yang hampir dengan arsitektur Model-View-Controller, yang kadang-kadang disebut oleh dokumentasi Django Model-View-Template.

Ini membawa kepada corak pengembangan berulang yang mudah diterima pakai:

  • mengusahakan Model, menentukan jenis data yang akan dijejaki dan bagaimana ia saling berkaitan;
  • bekerja pada Paparan, menentukan bagaimana data harus diakses dan apa yang harus dilakukan apabila data dimanipulasi;
  • bekerja pada Templat, menentukan bagaimana data kelihatan ketika dipaparkan kepada pengguna atau digunakan oleh aplikasi lain.
Model dan Penghijrahan

Membina ciri baru biasanya bermula dengan membuat model. Model adalah kelas (dalam pengertian OOP) yang menentukan pelbagai objek dalam sistem anda dan bagaimana ia saling berkaitan antara satu sama lain. Jadi, dalam aplikasi blog, anda mungkin mempunyai model untuk Post, Page, Category, Comment, dan sebagainya – dan mungkin komen adalah postingan subclass (sejenis), dan mungkin post dan halaman adalah subclass ContentItem.

Model ditulis dalam fail models.py setiap aplikasi. Inilah permulaan model yang sangat mudah untuk catatan blog.

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

# Buat model anda di sini.
kelas Post (models.Model):

tajuk = model.CharField (
max_length = 100,
)

slug = model. SlugField (
unik = Benar,
)

petikan = model.TextField (
max_length = 255,
)

kandungan = model.TextField (
kosong = Betul,
)

pengarang = model.ForeignKey (
Pengguna,
)

dicipta = model.DateTimeField (
auto_now_add = Betul,
)

def __str __ (diri):
mengembalikan diri.title

Django mempunyai Object Relational Mapper (ORM) sendiri, yang memberikan lapisan abstraksi ke pangkalan data. Ini membolehkan anda menentukan model data anda tanpa merujuk kepada sistem pengurusan pangkalan data tertentu, dan tanpa harus menulis SQL.

Semasa anda menambah model, anda membuat dan kemudian menjalankan migrasi. Migrasi adalah satu set yang dihasilkan secara automatik untuk perintah SQL yang mengubah reka bentuk pangkalan data agar sesuai dengan model – ORM Django menerjemahkan model anda menjadi migrasi SQL.

Sebelum anda melakukannya, anda perlu menyediakan pangkalan data anda dan menyambungkannya. Anda mempunyai banyak pilihan di sini, tetapi kebanyakan pengguna Django lebih suka PostgreSQL, dan ada alat PostgreSQL khas untuk Django yang tidak tersedia untuk pangkalan data lain.

Setelah pangkalan data anda berjalan, anda boleh melakukan migrasi.

> python management.py makemigrations
> python management.py berhijrah

Pentadbir

Django memberikan pandangan Pentadbir automatik pada data anda, sehingga anda dapat melakukan operasi CRUD asas dengan model anda dengan segera. Dan jika keperluan UI penyuntingan anda tidak terlalu rumit, anda hanya boleh menggunakan laman Pentadbiran tanpa membuat Paparan penyuntingan anda sendiri. Yang mesti anda buat ialah mendaftarkan model tersebut ke modul Admin. Ini dilakukan di admin.py, di dalam direktori aplikasi anda.

dari admin import django.contrib
dari .model import Pos

admin.site.register (Catatan)

Sekarang untuk log masuk dan mengakses Pentadbir, buat superuser dari baris arahan.

> python management.py createuperuser

Ikuti arahan dalam terminal untuk nama pengguna, e-mel dan kata laluan. Kemudian mulakan pelayan:

> python management.py runerver

Dan anda seharusnya dapat log masuk di http://127.0.0.1:8000/admin/. Sekiranya semuanya dikonfigurasi dengan betul, anda seharusnya dapat melihat, menambah, mengedit, dan menghapus catatan blog yang mudah.

Sekarang adalah masa yang tepat untuk membuat sebilangan contoh catatan. Ini akan menjadikan langkah seterusnya lebih bermakna.

Pandangan

Di Django, “Tampilan” bukan kod paparan bahagian depan (yang disebut “Templat”). Apa yang disebut Django sebagai View lebih seperti “Controller” dalam kerangka lain. Ini adalah fungsi yang menerima Permintaan HTTP sebagai argumen, dan mengembalikan Respons. Biasanya, tindak balas adalah kandungan halaman web yang kemudian dapat diakses dari Templat; tindak balas juga boleh menjadi pengalihan, mesej ralat, fail, atau sesuatu yang lain.

Situasi yang paling biasa ialah anda ingin menghantar Permintaan untuk bahagian kandungan tertentu (contohnya, satu siaran tertentu), dan kemudian mendapatkan kembali semua data yang berkaitan dengan isi kandungan tersebut (tajuk, petikan, kandungan, pengarang). Situasi lain yang biasa berlaku ialah anda ingin memaparkan senarai item kandungan, seperti di halaman depan blog atau berita.

Django menyediakan Pandangan Generik terbina dalam untuk mencapainya dengan cepat. Dua yang akan kami gunakan ialah ListView dan DetailView. Sekiranya anda ingin memperluasnya, atau membuat pandangan anda sendiri, anda akan melakukannya di view.py, tetapi kami akan menggunakannya seperti sekarang.

Sekarang kita hanya perlu memetakan pandangan tersebut ke URL. Di /wiht_site/urls.py, anda perlu memasukkan pemetaan URL khusus aplikasi anda.

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

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

Kemudian edit urls.py aplikasi anda.

dari django.conf.urls import url, sertakan
dari. pandangan import
dari django.views.generic import ListView, DetailView
dari .model import Pos

urlpatterns = [
url (
r ‘^ blog /

Fungsi url () yang menentukan setiap corak mempunyai rangkaian argumen yang dipisahkan dengan koma:

  • Ungkapan Biasa yang menentukan corak URL untuk memadankan permintaan masuk dengan;
  • Pandangan yang ditentukan, dengan hujah:
    • Model;
    • nama fail templat;
  • nama corak url ini.

Corak di atas sesuai dengan corak / blog / dan / blog / post-slug / URL dengan ListView dan DetailView, dan kemudian menentukan Templat mereka (index.html dan post.html).

Templat

Yang tinggal hanyalah membuat templat untuk memaparkan kandungan ini. Django menggunakan templat Jinja.

Buat tiga fail baru:

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

{% sekat kandungan%}
{% endblock%}

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

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

{% sekat kandungan%}

Catatan

{% untuk kemasukan dalam object_list%}

{{entri.title}}

{{entri.excerpt}}

{% endfor%}

{% endblock%}

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

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

{% sekat kandungan%}

{{post.title}}

{{post.author}}
Dihantar pada: {{post.created}}
{{post.content}}

{% endblock%}

Tahniah, anda sekarang harus mempunyai aplikasi blog yang berfungsi.

Bacaan dan Sumber Lanjut

Kami mempunyai lebih banyak panduan, tutorial, dan infografik yang berkaitan dengan pengekodan dan pengembangan:

  • Python Pengenalan, Sumber dan FAQ: artikel ini mengandungi banyak sumber untuk membantu anda menjadi Python pro.
  • Web Server Gateway Interface Primer: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengenalan Ruby on Rails: artikel ini akan memperkenalkan anda kepada alternatif untuk Python dan Django.

,
ListView.as_view (
queryset = Post.objects.all (). order_by (“dibuat”) [: 50],
template_name = “wiht_app / index.html”
),
nama = ‘senarai pos’
),
url (
r’blog / (? P [a-zA-Z0-9] + (?: – [a-zA-Z0-9] +) *) / Fungsi url () yang menentukan setiap corak mempunyai siri koma yang dipisahkan hujah:

  • Ungkapan Biasa yang menentukan corak URL untuk memadankan permintaan masuk dengan;
  • Pandangan yang ditentukan, dengan hujah:
    • Model;
    • nama fail templat;
  • nama corak url ini.

Corak di atas sesuai dengan corak / blog / dan / blog / post-slug / URL dengan ListView dan DetailView, dan kemudian menentukan Templat mereka (index.html dan post.html).

Templat

Yang tinggal hanyalah membuat templat untuk memaparkan kandungan ini. Django menggunakan templat Jinja.

Buat tiga fail 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

Tahniah, anda sekarang harus mempunyai aplikasi blog yang berfungsi.

Bacaan dan Sumber Lanjut

Kami mempunyai lebih banyak panduan, tutorial, dan infografik yang berkaitan dengan pengekodan dan pengembangan:

  • Python Pengenalan, Sumber dan FAQ: artikel ini mengandungi banyak sumber untuk membantu anda menjadi Python pro.
  • Web Server Gateway Interface Primer: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengenalan Ruby on Rails: artikel ini akan memperkenalkan anda kepada alternatif untuk Python dan Django.

,
DetailView.as_view (
model = Pos,
templat_nama ="wiht_app / post.html"),
nama ="jawatan"
)
]

Fungsi url () yang menentukan setiap corak mempunyai rangkaian argumen yang dipisahkan dengan koma:

  • Ungkapan Biasa yang menentukan corak URL untuk memadankan permintaan masuk dengan;
  • Pandangan yang ditentukan, dengan hujah:
    • Model;
    • nama fail templat;
  • nama corak url ini.

Corak di atas sesuai dengan corak / blog / dan / blog / post-slug / URL dengan ListView dan DetailView, dan kemudian menentukan Templat mereka (index.html dan post.html).

Templat

Yang tinggal hanyalah membuat templat untuk memaparkan kandungan ini. Django menggunakan templat Jinja.

Buat tiga fail 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

Tahniah, anda sekarang harus mempunyai aplikasi blog yang berfungsi.

kupon hosting web

Mencari tawaran hebat untuk hosting Django?
A2 Hosting menduduki tempat # 1 dalam ujian kelajuan dan prestasi terkini kami. Sekarang anda boleh menjimatkan sehingga 50% untuk rancangan berorientasikan pemaju mereka.
Gunakan pautan diskaun ini
untuk mendapatkan perjanjian.

Bacaan dan Sumber Lanjut

Kami mempunyai lebih banyak panduan, tutorial, dan infografik yang berkaitan dengan pengekodan dan pengembangan:

  • Python Pengenalan, Sumber dan FAQ: artikel ini mengandungi banyak sumber untuk membantu anda menjadi Python pro.
  • Web Server Gateway Interface Primer: pelajari cara menggunakan spesifikasi ini untuk menggunakan kerangka kerja Python dengan Django.
  • Pengenalan Ruby on Rails: artikel ini akan memperkenalkan anda kepada alternatif untuk Python dan Django.
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map