Як правильно почати вивчення django

Я не такий спец, як Ви.
Але я рік читала Лутца, а за один місяць почала користуватися Лутцем, як довідником.

Я спочатку була в udemy, до речі платно, але нічого толком не зрозуміла. Потім мій чоловік купив доступ у Бовсуновського, не буду приводити посилання, а наведу алгоритм за яким я зрозуміла Джанго.

Я розповім методику, яка мені допомогла. (Це не моя методика)

1. Починаємо з сервера. Я спочатку теж думала, навіщо. Але потім переконалася, що це правильне рішення.
На сервері:
Установка virtualenv + Django.
Далі вчимося ставити бібліотеки Джанго.
Основна мета боротьба з помилкою 500. У мене моторошно довго не виходило, але потім як навчилася налаштовувати

Найчастіші помилки, було помічено
www.bombicod.com

Насправді дуже важливо почати відрізняти помилки сервера від помилок Джанго.

Крок 2. Пишемо просте додаток в PyCharm. По ходу я розібралася, як працює середовище розробки PyCharm, налаштувала ftp і SSH. (Проект на сервері і в середовищі один і той же)
Тут важливо розібратися, як що і чим обробляється.

Крок 3.
Потім я робила домашнє задні на сервері.

Крок 4.
Після, як я зрозуміла, як працює Джанго. Ми почали вивчати все докладно.
Почали з url і все детально розібрали, я не розуміла, чому з середини.
Тільки коли дійшли до практикумів (це розгляд якої те частини Джанго, але з написанням повного додатки, що б бачити повну картину) про них далі скажу.

Після розгляду url, я зрозуміла головне, що url обробляється в файлі views.py в поданні.

Потім ми перейшли до моделей і тут я зрозуміла так само головне, що моделі обробляються теж в поданні.

Ось з цього моменту я почала розуміти Джанго і мені стала зрозуміла довідка. Іншими словами, я увійшла в Джанго.

Потім ми перейшли до практикумам. Тобто це рішення конкретних завдань. Ось наприклад.

І ось тут я зрозуміла нарешті чому ми починали з url. Розуміючи механізм url і вже вивчаючи моделі, а я раніше писала, що в Джанго і поля моделей і url обробляються в поданні. Але в практикумах з'явилися інші поняття наприклад для складання посилань, правильна обробка namespace, це дуже важливі моменти, будете вивчати побачите, так як ніколи не доведеться правити посилання вручну який би не був сайт великий, а в самому файлі url, можна змінювати все що завгодно .

Я зрозуміла головне, так як в спрвке Джанго все разделео і що б її розуміти потрібно писати повні додатки.

Тепер відбувається так.

Ось я просто розповім, хід своїх думок.

Як мені пояснили, головне розібратися з двома параметрами, інші параметри особисто у мене не викликали труднощів.

blank - бланк відноситься до Джанго
null - відноситься до бази даних

Розбираємося з параметрами і розуміємо, що вони поределяют поведінку полів.

наприклад
title_myautoid = models.CharField (max_length = 200)
наприклад в даному випадку max_length = 200 визначає кількість символів (наприклад в загаловке статті)

from django.db import models

Важко все пояснити в одній статті перейду на частому прикладі до суті Джанго.

models.py
class MyAutoId (models.Model):
class Meta ():
db_table = 'myautoid_app' # db_table - так буде називатися наше поле в базі

def __unicode __ (self):
return self.title_myautoid

Головне? що я зрозуміла, що вибірка полів обробляється в файлі views.py в поданні

from django.shortcuts import render_to_response, get_object_or_404, render

from allfields.models import MyAutoId

def allfields_all (request):
te = MyAutoId.objects.all ()
return render_to_response ( 'allfields_all.html',)

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

Для мене стало все банально просто

ось рядок
te = MyAutoId (наша модель) .objects (менеджер, програма, яка вміє працювати з моделями) .all () -метод вибірки об'єктів, в даному випадку вивести всі записи.
замість all (), я можу підставляти будь-які інші методи.

рядок
return (повернути) render_to_response (показати і вивести) ( 'allfields_all.html', (куди вивести) вивести у вигляді словника))

Так як занадто великий текст.
відразу поясню, як виводиться в файлі html

Повторюся я зрозуміла кілька важливих речей.
1. При створенні моделі в models.py ми просто вказуємо поля і коли запускаємо команди
makemigrations (перевірити еслть нові поля)
migrate (створити поле)

2. У файлі views.py в поданні,

def (request): # звичайна функція пайтон.
назва = наша модель.менеджер.метод
повернути відповідь (куди вивести, як вивести)

У першому рядку обробляється модель. До речі в довідці це в моделях, а пишеться в поданні.
Другий рядок уявлення - відповідь сервера.

Тепер залишився url

# - * - coding: utf-8 - * -
from django.conf.urls import patterns, url
from allfields.views import allfields_all
from allfields.views import allfields_one
from allfields import views
urlpatterns = patterns ( '',
# Examples:


url (r '^ $', allfields_all- наша функція виведення всіх постів),
url (r '^ one / (? P \ d +) / $', views.allfields_one, name = 'allfields_one' - наша функція виведення одного поста),
)

Стає зрозуміло головне, що в url ми вказуємо функції з views.py уявлення.

Складно пояснити в одному пості.

Але далі мої дії були такими.
Я відразу відправляю на сервер і бачу результат в інтернет.

Можна зробити висновок. Який би елемент ми не брали, потрібно його розглядати в ракурсі всього програми, тоді ми бачимо, як працює Джанго в цілому.

Іншими словами. расммтріваем url в складі програми.
Розглядаємо поле моделі в складі програми.
Розглядаємо уявлення, працюю з моделлю.

Далі стає все набагато простіше.

Змінюються поля моделей - набирається досвід.
Ускладнюються фукции за вибіркою моделей - набирається досвід
Прописуються url - набирається досвід і варіанти.

Я тут не описувала, але відразу ж нам рекомендували створити базовий файл html, перед цим були перенаправлені на знайомство з мовою шаблонів і успадкування.

Виходять, міні додатки практикуми, але як би шматок коду, але так само і рішення конкретного завдання.

І тепер залишається ще одне важливе, наприклад читаючи про методи вибірки об'єктів звертати увагу на типи даних, в довідці постійно вказується, це що список. рядок, кортеж, словник і доступні операції.

Наприклад: я вже ділова прочитала що, all () - формується, як список Пітон. залізла в списки і прочитала, що списки підтримують зрізи.

залишається тільки зрозуміти як застосовувати

def allfields_all (request):
te = MyAutoId.objects.all ()
return render_to_response ( 'allfields_all.html',)

А тепер найголовніше. Коли з місяць поробиш повні додатки, не важливо що вивчаєш в даний момент модель, предствлений, url, головне писати в складі програми.

Потім. коли в голові укладається, легко починають розумітися шматки коду зі довідки Джанго

>>> from django.db.models import Count
>>> q = Blog.objects.annotate (Count ( 'entry'))
# The name of the first blog
>>> q [0] .name
'Blogasaurus'
# The number of entries on the first blog
>>> q [0] .entry__count
42

І що не сказала, все в статтю не вмістиш відкриваєте django shell, командний рядок, яка пов'язана і з Джанго і з Пітон.
Наприклад, написали модель і починаєте в командному рядку писати методи і відразу зрозуміло, як працює Джанго зсередини.

Я поки тільки вчуся, але для місяця в порівнянні, що рік до цього Лутца читала просунулася непогано.
Думаю в майбутньому буду писати ще зрозуміліше. поки багато емоцій.

Тепер. як я говорила Лутц, для мене став довідником. А чи не розповіддю.

Схожі статті