Početak rada s Djangom – uvod i udžbenik

Objava: Vaša podrška pomaže održavanju web mjesta! Naplaćujemo naknadu za preporuku za neke usluge koje preporučamo na ovoj stranici.


Django je brzi razvojni okvir za web aplikacije napisan u Python-u.

Okvir za razvoj je aplikacijski kostur, s nizom alata za izradu softvera i mišljenje o tome kako softver treba biti izgrađen.

Okviri smanjuju kôd „kotlovske ploče“ pružajući najčešće značajke – povezivanje baze podataka, korisničke prijave, upravljanje sesijama, usmjeravanje zahtjeva. Oni su potrebni u gotovo svakoj aplikaciji, bez obzira na njezinu određenu svrhu i ne moraju ih biti redizajnirani za svaki novi projekt.

Okvir za razvoj također pruža arhitekturu sustava. Umjesto da troše vrijeme i energiju odlučujući kako organizirati kôd (ili imaju neprestane probleme zbog toga što to ne rade), okvir ima pravi način organiziranja značajki, tako da možete jednostavno započeti s njihovim stvaranjem.

Vidjet ćemo kako izgleda ta struktura dok prolazimo postavljanjem prve aplikacije.

Početak rada

Jedino što vam stvarno treba je pristup internetu, vrlo osnovno znanje naredbenog retka i uređivač koda.

Većina Linux korisnika vjerojatno zna kako pristupiti svom Terminalu, ali evo kratkog vodiča do Linux terminala u slučaju da ga nemate. Ako ste na Mac OS X, u aplikaciji Terminal imate dostupnu naredbenu liniju sličnu Linuxu / Unixu.

Komandna linija sustava Windows malo se razlikuje od one na Mac OS X i Linuxu (koja se naziva bash).

Možete koristiti Windows Powershell, ali morat ćete ga prilično “prevesti” – ne samo ovdje, već i u većini drugih tutorijala i referentnih vodiča.

Vjerojatno je najlakši pristup jednostavno instalirati bash terminal.

Imate nekoliko opcija:

  • Cygwin: ovo je zbirka Linux / Unix alata za Windows, uključujući bash terminal.
  • Gitbash: Git za Windows dolazi sa bash implementacijom. Vjerovatno ćete ionako htjeti koristiti git (i Github) za kontrolu verzija, tako da je ovo prilično jednostavno rješenje.
  • Windows 10 uključuje Bash školjku utemeljenu na Ubuntuu, što je nevjerojatno. Potrebno je malo učiniti da se to funkcionira.

Instaliranje svega

Django se pokreće na nekoliko koraka: Python, nadogradite Python upravitelj paketa, postavite svoje virtualno okruženje i instalirajte Django.

Piton

Ako nemate Python na računalu, potreban vam je. Pogledajte stranicu za preuzimanje Python za veze na sve glavne operativne sustave.

Trebat ćete Python 3, a ne Python 2. Možete koristiti Python 2 s Django, ali Python 3 je sadašnjost i budućnost jezika.

Ako tek ulazite u Python i Django, upotrijebite Python 3.

Možda već imate Python 2 na računalu. Od ovog pisanja Mac OS X se isporučuje s Python 2, kao i nekoliko Linux distribucija. Instalirajte Python 3 i koristite ga. (Imati dvije verzije Pythona na računalu neće biti problem, kao što ćete vidjeti u sljedećim koracima.)

Ako niste sigurni koju verziju Pythona imate, upišite python u naredbeni redak.

To će vam reći. Na primjer, sljedeće je ono što biste vidjeli ako pokrećete Python verziju 3.5.1:

> piton
Python 3.5.1 (v3.5.1: 37a07cee5969, 5. prosinca 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. graditi 5666) (točka 3)] na darwinu
Tip "Pomozite", "autorsko pravo", "krediti" ili "licenca" za više informacija.

Ako trčanje python otkriva v2, pokušajte s python3. Ako imate instaliran Python 3, to bi vam trebalo reći.

Nadogradite Upravitelj paketa Python

Python se isporučuje s pip-om, upravljačem paketa Python. Međutim, morat ćete ga nadograditi (paketi za instalaciju Pythona se ne nadograđuju svaki put kada se ažuriranja pipova). Srećom, pip se nadograđuje brzom naredbom terminala:

> pip install – nadogradnja pip

Python Virtual Environment

Svaki Python projekt, uključujući i Django projekt, obično uključuje nekoliko zasebnih paketa drugih proizvođača.

Ako puno koristite Python, na kraju ćete imati sukoba verzija – ovom projektu treba v4.3 nečega, dok taj projekt treba v5.1. Rješenje su virtualna okruženja Pythona.

Postoji nekoliko alata za virtualno okruženje za Python. Koristimo virtualenv. Prvo, instalirajte ga s pip-om:

> pip instalirati virtualenv

Zatim postavite virtualno okruženje za svoj projekt Django. Stvorite novi direktorij koji će sadržavati vaše Django projekte.

Taj će direktorij sadržavati vaš direktorij projekata i druge stvari, tako da se ne biste zbunjivali možda bi bilo najbolje dati mu ime koje nije vaše ime projekta. Nazvat ćemo ovo jednim django-projektima.

Izradite direktorij spremnika, a zatim pokrenite virtualenv iz direktorija.

Prilikom pokretanja virtualenv navest ćemo python3 i okolini dati ime (djenv), a zatim aktivirati virtualno okruženje.

> mkdir django-projekti
> cd django-projekti
-/ Django-projekti > virtualenv -p python3 djenv
-/ Django-projekti > izvor djenv / bin / activate
(djenv) ~ / django-projekti >

Sada ste u virtualnom okruženju zvanom djenv. Svi papiri za pipove koje instalirate ili nadogradite bit će dostupni samo ako je aktivirano ovo virtualno okruženje.

Da biste isključili virtualno okruženje, samo upišite deaktiviraj.

Brza napomena o imenovanju stvari – većina dokumentacije za virtualenv, Django i Python općenito koristi venv kao naziv njihovog primjera Virtual Environment.

Samim time možete postati zbunjujući, jer na računalu možete stvoriti nekoliko različitih, a korisno je zapamtiti koja je.

Također, venv je naziv još jednog alata za virtualnu okolinu Python-a.

Korisni pristup je imenovati okoliš nešto što ima veze s projektom (poput djenv za django okruženje), ali možete mu imenovati sve što želite.

Instalirajte Django

To je prilično jednostavno:

(djenv) ~ / django-projekti > pip instaliraj django

Možda želite deaktivirati svoje virtualno okruženje i instalirati Django u cijelom sustavu. Na tebi je.

Bilo kako bilo, pip će početi instalirati Django i sve njegove ovisnosti. To bi moglo potrajati neko vrijeme.

Pokretanje projekta

“Projekt” se (općenito) podrazumijeva kao cjelovita, cjelovita web stranica (ili potencijalno obitelj web lokacija).

Web lokacija može imati nekoliko različitih funkcija – blog, forum, trgovina, chat pomoć.

Svaka od njih naziva se “aplikacija” (ili samo “aplikacija”). Dakle, projekt je kolekcija aplikacija.

Ovo je važno za način na koji strukturirate stvari, ali nije bitno i kako stvari imenujete.

Zamislite da želite izgraditi novu web aplikaciju koja omogućuje ljudima dijeljenje fotografija. Po tvom mišljenju, cijela je stranica “aplikacija”.

Ali ako svoj projekt Django inicijalizirate s imenom photo-share-app (ili bilo što drugo), zbunit ćete se s dupliciranim imenima imenika.

Struktura projekta Django

Struktura direktorija Django projekta izgleda ovako:

– /naziv projekta/
– naziv projekta/
– app-name /
– app-name /
– app-name /

Kada prvi put inicijalizirate svoj projekt, dobit ćete direktorij projekta na najvišoj razini, a drugi unutar njega.

Najviša razina djeluje kao spremnik za ostatak. Druga razina ima konfiguracijske datoteke za projekt u cjelini.

Nova aplikacija koju gradite nalazit će se u jednoj (ili više) dodatnih mapa aplikacija.

To stvara neugodnosti. Pod pretpostavkom da gradite nevjerojatnu novu web aplikaciju s fantastičnim nazivom (nazovimo je tako), ako ne razmišljate o tome, završit ćete ovako:

– / S naznakom /
– s naznakom /
– ?… kako da nazovem stvar koju gradim …? /

Evo prijedloga:

– / Wiht_site /
– wiht_site /
– wiht_app /

Zbog toga je sve jasno i lako se pamti. Također olakšava jednostavno postavljanje bilo koje generičke značajke web mjesta koje želite koristiti.

Ili možete sami izraditi dodatne prilagođene aplikacije, ako imaju smisla kao samostalni moduli:

– / Wiht_site /
– wiht_site /
– wiht_app /
– treće strane blog-app /
– treće strane forum-app /
– s naznakom-CRM aplikaciji /

Dokumenti Django koriste mysite, i to je u redu za primjere. Trebat ćete jedinstveno ime za svaki projekt.

(Naravno, ne morate graditi novu aplikaciju da biste koristili Django. Mogli biste samo postaviti projekt i koristiti kolekciju postojećih aplikacija.

Na ovaj način možete dobiti složena višenamjenska web mjesta i funkcionirati prilično brzo te kasnije imati fleksibilnost za dodavanje aplikacija izgrađenih od korisnika.)

(Napokon) Inicijalizirajte svoj projekt

Unutar bilo kojeg direktorija “spremnika” (prethodno upotrijebili / django-projekte) i aktiviranim virtualnim okruženjem, novi projekt pokrenite naredbom django-admin.

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

Sada imate:

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

Sada pokrenite testni poslužitelj da biste bili sigurni da se sve dogodilo ispravno.

(djenv) ~ / django-projekti > cd wih_site
(djenv) ~ / django-projects / wiht_site > python Manag.py runserver

Dobićete neki izlaz poput:

Provođenje provjere sustava…

Provjera sustava identificirana nema problema (0 utišan).

Imali ste neprimjerene migracije; vaša aplikacija možda neće raditi ispravno dok se ne primijeni.
Pokrenite “python Manag.py migrate” da biste ih primijenili.

22. travnja 2016. – 17:45:53
Django verzija 1.9, koristeći postavke ‘wiht_site.settings’
Pokretanje poslužitelja za razvoj na adresi http://127.0.0.1:8000/
Zatvorite poslužitelj s CONTROL-C.

Otvorite http://127.0.0.1:8000 u pregledniku i trebali biste vidjeti nešto što radi: poruka “Dobrodošli u Django”.

Inicijaliziranje prve aplikacije

Odavde pretpostavimo da smo uvijek u najvišem nivou wiht_site direktorija (poddirektorij) s aktiviranim djenv okruženjem.

Kad to vidite u primjerima:

>

Pretpostavimo da ste ovdje:

(djenv) ~ / django-projects / wiht-app >

Napravite novu aplikaciju s Manag.py.

> python Manag.py startapp wiht_app

Ovo će stvoriti novu mapu, / wiht_app /, sa sljedećim sadržajem:

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

Sada morate “instalirati” aplikaciju. Otvorite /wiht_site/wiht_site/settings.py i pronađite INSTALLED_APPS. To treba urediti tako da uključuje i vašu novu aplikaciju.

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

Nešto razvijamo

Django aplikacije imaju nešto što je blisko arhitekturi Model-View-Controller, koju Django dokumentacija ponekad naziva Model-View-Template.

To dovodi do lako prihvaćenog iterativnog razvojnog obrasca:

  • raditi na modelu, definirajući koje će se podatke pratiti i kako se međusobno odnose;
  • raditi na pogledu, definirajući kako podacima treba pristupiti i što učiniti kada se podacima manipulira;
  • raditi na Predlošku, definirajući kako podaci izgledaju kada ih korisnik prikaže ili koristi druga aplikacija.
Modeli i migracije

Izgradnja novih značajki obično počinje izradom modela. Modeli su klase (u OOP smislu) koje definiraju različite objekte u vašem sustavu i kako se međusobno odnose. Dakle, u aplikaciji za blog možda imate modele za Post, Stranica, Kategorija, Komentar i tako dalje – a možda je komentar post podrazreda (vrsta), a možda su postovi i stranice podklase ContentItem-a.

Modeli su zapisani u datoteci models.py svake aplikacije. Ovdje je početak vrlo jednostavnog modela objava na blogovima.

s uvoznih modela django.db
s django.contrib.auth.models uvoz korisnika

# Stvorite svoje modele ovdje.
klasa pošta (modeli.Model):

title = modeli.CharField (
MAX_LENGTH = 100,
)

slug = modeli.SlugField (
Jedinstvena = True,
)

excerpt = modeli.TextField (
MAX_LENGTH = 255,
)

sadržaj = modeli.TextField (
blank = true,
)

autor = modeli.ForeignKey (
Korisnik,
)

stvoreno = modeli.DateTimeField (
auto_now_add = True,
)

def __str __ (samo):
vratite se samo.title

Django ima vlastiti objektni relacijski mapper (ORM), koji pruža sloj apstrakcije baze podataka. To vam omogućuje da definirate svoj podatkovni model bez upućivanja na određeni sustav upravljanja bazama podataka i bez potrebe za pisanjem SQL-a.

Dok dodajete modele, kreirate i zatim pokrećete migracije. Migracija je automatski generirana skup SQL naredbi koja mijenja dizajn baze podataka u skladu s modelima – Djangov ORM prevodi vaše modele u SQL migracije.

Prije nego što to učinite, htjet ćete postaviti bazu podataka i povezati je. Ovdje imate puno mogućnosti, ali većina korisnika Django više voli PostgreSQL, a postoje posebni PostgreSQL alati za Django koji nisu dostupni za druge baze podataka.

Nakon što pokrenete bazu podataka, možete migrirati.

> python management.py makemigracije
> python Manag.py seliti

Admin

Django pruža automatski pregled vaših podataka, tako da sa svojim modelima možete odmah obavljati osnovne CRUD operacije. A ako vaše korisničko korisničko sučelje za uređivanje nije strašno složeno, možete jednostavno koristiti web mjesto administratora bez izrade vlastitih vlasničkih pregleda za uređivanje. Sve što trebate učiniti je registrirati model pomoću Admin modula. To se događa u admin.py, unutar vašeg direktorija aplikacije.

s django.contrib import admin
iz .models import Posta

admin.site.register (post)

Sada se prijavite i pristupite Adminu, iz naredbenog retka stvorite superuprostor.

> python Manag.py stvara upravljački sklop

Slijedite upute u terminalu za korisničko ime, e-poštu i zaporku. Zatim pokrenite poslužitelj:

> python Manag.py runserver

A trebali biste se moći prijaviti na http://127.0.0.1:8000/admin/. Ako je sve konfigurirano ispravno, trebali biste moći pregledavati, dodavati, uređivati ​​i brisati jednostavne postove na blogu.

Sada bi bilo dobro vrijeme za stvaranje pregršt uzoraka. Sljedeći će korak učiniti smislenijim.

Pogled

U Djangu, “Pogled” nije prednji kôd za prikaz (koji se naziva “Predložak”). Ono što Django naziva View više liči na “Controller” u drugim okvirima. To je funkcija koja kao argument prima HTTP zahtjev i vraća odgovor. Obično je odgovor sadržaj web stranice kojoj je tada dostupan predložak; odgovor može biti preusmjeravanje, poruka o pogrešci, datoteka ili nešto treće.

Najčešća je situacija da želite poslati zahtjev za određeni dio sadržaja (na primjer, jedan određeni post), a zatim vratiti sve podatke povezane s tim dijelom sadržaja (naslov, izvadak, sadržaj, Autor). Druga je uobičajena situacija da želite prikazati popis stavki sadržaja, kao što je na naslovnici bloga ili newsfeed-a.

Django pruža ugrađene generičke prikaze kako bi se to brzo postiglo. Dva koja ćemo koristiti su ListView i DetailView. Ako ih želite proširiti ili stvoriti vlastite prikaze, učinili biste to u views.py, ali mi ćemo ih koristiti kao što je zasad.

Sada samo trebamo preslikati te poglede na URL-ove. U /wiht_site/urls.py morat ćete uključiti mapiranje URL-a za vašu aplikaciju.

od uvoza URL-a django.conf.urls, uključuju
s django.contrib import admin

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

Zatim uredite urls.py aplikacije.

od uvoza URL-a django.conf.urls, uključuju
od. uvozni prikazi
iz django.views.generic uvoz ListView, DetailView
iz .models import Posta

urlpatterns = [
uRL (
r ‘^ blog /

Funkcija url () koja definira svaki uzorak ima niz argumenata odvojenih zarezima:

  • Regularni izraz koji definira uzorak URL-a da odgovara dolaznim zahtjevima;
  • definirani Pogled s argumentima:
    • Model;
    • naziv datoteke predloška;
  • naziv ovog uzorka URL-a.

Gornji obrasci odgovaraju uzorcima / blog / i / blog / post-slug / URL sa ListView i DetailView, a zatim specificiraju njihove Predloške (index.html i post.html).

predložak

Sve što preostaje je stvoriti predložak za prikaz ovog sadržaja. Django koristi Jinja predložak.

Stvorite tri nove datoteke:

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

{% blok sadržaja%}
{% endblock%}

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

{% produžuje "wiht_app / main.html" %}

{% blok sadržaja%}

Postovi

{% za unos u objekt_popis%}

{{entry.title}}

{{entry.excerpt}}

{% endfor%}

{% endblock%}

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

{% produžuje "wiht_app / main.html" %}

{% blok sadržaja%}

{{post.title}}

{{post.author}}
Objavljeno: {{post.create}}
{{post.content}}

{% endblock%}

Čestitamo, sada biste trebali imati radnu aplikaciju za blog.

Daljnje čitanje i izvori

Imamo više vodiča, tutorijala i infografika vezanih za kodiranje i razvoj:

  • Uvod, resursi i često postavljana pitanja Pythona: ovaj članak sadrži mnoštvo resursa koji će vam pomoći da postanete Python pro.
  • Primer Web sučelja za pristup mrežnom poslužitelju: naučite kako koristiti ovu specifikaciju za korištenje okvira Python s Django.
  • Uvod u Ruby on Rails: ovaj će vam članak predstaviti alternativu Pythonu i Djangu.

,
ListView.as_view (
skup upita = Post.objects.all () order_by ( „stvorio”). [: 50],
Predložak =”wiht_app / index.html”
),
name =”post-listu”
),
uRL (
r’blog / (? p [a-zA-Z0-9] + (?: – [a-zA-Z0-9] +) *) / Funkcija url () koja definira svaki uzorak ima niz odvojenih zarezima argumenti:

  • Regularni izraz koji definira uzorak URL-a da odgovara dolaznim zahtjevima;
  • definirani Pogled s argumentima:
    • Model;
    • naziv datoteke predloška;
  • naziv ovog uzorka URL-a.

Gornji obrasci odgovaraju uzorcima / blog / i / blog / post-slug / URL sa ListView i DetailView, a zatim specificiraju njihove Predloške (index.html i post.html).

predložak

Sve što preostaje je stvoriti predložak za prikaz ovog sadržaja. Django koristi Jinja predložak.

Stvorite tri nove datoteke:

/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

Čestitamo, sada biste trebali imati radnu aplikaciju za blog.

Daljnje čitanje i izvori

Imamo više vodiča, tutorijala i infografika vezanih za kodiranje i razvoj:

  • Uvod, resursi i često postavljana pitanja Pythona: ovaj članak sadrži mnoštvo resursa koji će vam pomoći da postanete Python pro.
  • Primer Web sučelja za pristup mrežnom poslužitelju: naučite kako koristiti ovu specifikaciju za korištenje okvira Python s Django.
  • Uvod u Ruby on Rails: ovaj će vam članak predstaviti alternativu Pythonu i Djangu.

,
DetailView.as_view (
Model = post,
Predložak ="wiht_app / post.html"),
name ="pošta"
)
]

Funkcija url () koja definira svaki uzorak ima niz argumenata odvojenih zarezima:

  • Regularni izraz koji definira uzorak URL-a da odgovara dolaznim zahtjevima;
  • definirani Pogled s argumentima:
    • Model;
    • naziv datoteke predloška;
  • naziv ovog uzorka URL-a.

Gornji obrasci odgovaraju uzorcima / blog / i / blog / post-slug / URL sa ListView i DetailView, a zatim specificiraju njihove Predloške (index.html i post.html).

predložak

Sve što preostaje je stvoriti predložak za prikaz ovog sadržaja. Django koristi Jinja predložak.

Stvorite tri nove datoteke:

/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

Čestitamo, sada biste trebali imati radnu aplikaciju za blog.

kupon za web hosting

Tražite mnogo posla na Django hostingu?
A2 hosting bio je na prvom mjestu u našim nedavnim testovima brzine i performansi. Sada možete uštedjeti do 50% na njihovim razvojnim planovima.
Koristite ovu vezu za popust
da se dogovori.

Daljnje čitanje i izvori

Imamo više vodiča, tutorijala i infografika vezanih za kodiranje i razvoj:

  • Uvod, resursi i često postavljana pitanja Pythona: ovaj članak sadrži mnoštvo resursa koji će vam pomoći da postanete Python pro.
  • Primer Web sučelja za pristup mrežnom poslužitelju: naučite kako koristiti ovu specifikaciju za korištenje okvira Python s Django.
  • Uvod u Ruby on Rails: ovaj će vam članak predstaviti alternativu Pythonu i Djangu.
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map