Cum să începeți să învățați django

Nu sunt la fel de special ca tine.
Dar l-am citit pe Lutz timp de un an, și într-o lună am început să-l folosesc pe Lutz drept referință.

Am fost la început în udemy, pe calea plătită, dar nu înțelegeam nimic. Atunci soțul meu a cumpărat accesul de la Bovsunovsky, nu voi da o legătură, dar voi da un algoritm pe care l-am înțeles pe Django.







Îți voi spune metodologia care ma ajutat. (aceasta nu este tehnica mea)

1. Începem de la server. De asemenea, am crezut inițial de ce. Dar apoi am devenit convins că aceasta este decizia corectă.
Pe server:
Instalați virtualenv + Django.
În continuare învățăm să punem bibliotecile lui Django.
Scopul principal al luptei împotriva erorilor 500. Nu am ajuns prea mult timp, dar am învățat cum să ajung

Cele mai frecvente greșeli au fost observate
www.bombicod.com

De fapt, este foarte important să începeți să distingeți erorile serverului de greșelile lui Django.

Pasul 2. Scrieți o aplicație simplă în PyCharm. În curs am dat seama cum funcționează mediul de dezvoltare PyCharm, am creat ftp și SSH. (proiectul de pe server și în mediu este același)
Este important să înțelegeți cum și ce se procesează.

Pasul 3.
Apoi am făcut acasă pe server.

Pasul 4.
După aceea, mi-am dat seama cum funcționează Django. Am început să studiem totul în detaliu.
Am început cu url și totul a fost sortat, nu am înțeles de ce din mijloc.
Numai atunci când au ajuns la ateliere (aceasta este considerarea unei părți din Django, dar cu scrierea cererii complete, care ar vedea imaginea completă), voi spune mai multe despre ele.

După luarea în considerare a urlului, mi-am dat seama că principalul lucru este că adresa URL este procesată în fișierul views.py din vizualizare.

Apoi ne-am mutat la modele și aici am înțeles atât de important că modelele sunt, de asemenea, prelucrate în vedere.

Din acel moment, am început să înțeleg Django și am primit ajutorul. Cu alte cuvinte, am intrat în Django.

Apoi am mers la ateliere. Asta este, aceasta este o soluție de sarcini specifice. Aici, de exemplu.

Și aici am înțeles în sfârșit de ce am început cu url. Înțelegând mecanismul adresei url și deja studiind modelul și am scris anterior că în Django și câmpurile de model și url sunt procesate în vizualizare. Dar, în atelierele de lucru au existat alte concepte, cum ar fi compilarea de referințe, manipularea corespunzătoare a spațiului de nume, este puncte foarte importante, vor învăța să vadă, așa cum nu trebuie să modificați manual linkurile care nu ar fi un site de mare, și în fișierul URL, puteți schimba nimic .

Am înțeles lucrul principal, deoarece în sprintul Django totul este împărțit și că ar fi necesar să se scrie cereri complete.

Acum se întâmplă așa.

O să-ți spun doar cursul gândurilor mele.

După cum am explicat, principalul lucru de înțeles cu doi parametri, ceilalți parametri pe care eu personal nu le-a provocat dificultăți.

necompletat - formularul se referă la Django
null se referă la baza de date

Înțelegem parametrii și înțelegem că reduc comportamentul câmpurilor.

De exemplu
title_myautoid = models.CharField (max_length = 200)
de exemplu, în acest caz MAX_LENGTH = 200 determină numărul de caractere (de exemplu, în zagalovke articol)

de la modelele de import django.db

Este greu de explicat totul într-un singur articol, trece la partea a eșantionului la punctul Django.

models.py
clasa MyAutoId (modele.Model):






clasa Meta ():
db_table = 'myautoid_app' # db_table - acesta va fi numele campului nostru din baza de date

def __unicode __ (auto):
retur auto.title_myautoid

Principalul lucru? că mi-am dat seama că selecția câmpurilor este procesată în fișierul views.py din vizualizare

din django.shortcuts import render_to_response, get_object_or_404, rendering

de la allfields.models import MyAutoId

def allfields_all (cerere):
te = MyAutoId.objects.all ()
returnați render_to_response ('allfields_all.html',)

def allfields_one (request, one_id):
one = get_object_or_404 (MyAutoId, pk = one_id)
retur render (cerere, 'allfields_one.html',)

Pentru mine, totul a devenit banal

iată linia
te = MyAutoId (modelul nostru) .objects (Manager, un program care știe cum să lucreze cu modele) .Toate () eșantion -Metoda de obiecte, în acest caz, pentru a aduce toate înregistrările.
în loc de toate (), pot înlocui orice alte metode.

rând
retur (retur) render_to_response (spectacol și afișare) ( „allfields_all.html“, (în cazul în care afișajul) pentru a afișa în dicționar))

Deoarece textul este prea mare.
Voi explica imediat cum apare în fișierul html

Din nou, am realizat câteva lucruri importante.
1. Când creați un model în models.py, specificăm câmpurile și când executăm comenzile
(verificați dacă sunt disponibile noi câmpuri)
migrați (creați câmpul)

2. În fișierul views.py din vizualizare,

def (cerere): # funcția obișnuită python.
title = model.manager.methodului nostru
returnați răspunsul (unde să vă retrageți, cum să vă retrageți)

În prima linie, modelul este procesat. Apropo de ajutor în modele, și este scris în reprezentare.
A doua linie a vederii este răspunsul serverului.

Acum există url

# - * - codare: utf-8 - * -
de la modelele de import django.conf.urls, url
de la allfields.views import allfields_all
de la allfields.views import allfields_one
din vizualizările de import pentru toate câmpurile
urlpatterns = modele ('',
# Exemple:


url (r '^ $', allfields_all este funcția noastră de ieșire pentru toate postările),
url (r '^ o / (P \ d +) / $?', views.allfields_one, name = 'allfields_one' - funcția noastră O de un post)
)

Se știe că principalul lucru este că în url specificăm funcții cu vederi views.py.

Este dificil de explicat într-un singur post.

Dar acțiunile mele au fost așa.
Imediat trimit la server și să văd rezultatul pe Internet.

Putem încheia. Indiferent de elementul pe care îl luăm, trebuie să îl privim din perspectiva întregii aplicații, apoi să vedem cum funcționează Django ca întreg.

Cu alte cuvinte. Am răspândit url în aplicație.
Considerăm câmpul model în aplicație.
Luați în considerare punctul de vedere, eu lucrez cu modelul.

Mai mult, totul devine mult mai ușor.

Domeniile modelelor se schimbă - experiența este câștigată.
Complicată cu alegerea modelelor - câștigând experiență
Urlul este prescris - experiența și opțiunile sunt acumulate.

Nu sunt aici descrise, dar imediat ce ne-au fost recomandate pentru a crea un fișier de bază HTML, înainte de a fi fost transmis cunoștință cu șabloanele lingvistice și moștenirea.

Se pare că aplicațiile mini sunt practice, dar ca o bucată de cod, dar și o soluție la o anumită problemă.

Și acum există un lucru mai important, de exemplu, atunci când citiți despre metodele de selectare a obiectelor pentru a acorda atenție tipurilor de date, ajutorul este indicat în mod constant, aceasta este lista. string, tuple, dicționar și operațiunile disponibile.

De exemplu: Am citit deja că, tot () - este format ca o listă de Python. s-au urcat în liste și au citit că listele sprijină felii.

Rămâne doar să înțelegem cum să aplicăm

def allfields_all (cerere):
te = MyAutoId.objects.all ()
returnați render_to_response ('allfields_all.html',)

Și acum cel mai important lucru. Când faceți o lună plină de aplicații, nu contează ce studiați în prezent modelul, prezentarea, urlul, principalul lucru pe care trebuie să-l scrieți ca parte a aplicației.

Apoi. atunci când capul este stivuit, este ușor de înțeles piesele de cod de la un Django de referință

>>> de la django.db.models Import Count
>>> q = Blog.objects.annotate (Count ('entry'))
# Numele primului blog
>>> q [0]. nume
'Blogasaurus'
# Numărul de intrări pe primul blog
>>> q [0] .entry__count
42

De asemenea, acest lucru nu a spus, toate în articol nu poate deschide shell-ul django, linia de comandă, care este conectată cu Django și Python.
De exemplu, ați scris un model și ați început să scrieți metode pe linia de comandă și este clar imediat cum funcționează Django din interior.

Încă mai învăț, dar pentru o lună, comparativ cu faptul că, cu un an înainte de citirea lui Lutz, a mers bine.
Cred că în viitor voi scrie mai clar. până la o mulțime de emoții.

Acum. așa cum am spus Lutz, pentru mine am devenit o referință. Și nu narațiune.







Articole similare

Trimiteți-le prietenilor: