изучение django с чего начать

Как я изучал(изучаю фреймворк Django). Личный опыт.

Что нужно знать (необходимый МИНИМУМ) относительно Python:

-Ввод и вывод данных

-Функции и рекурсия

-Работа с модулями и функциями (создание, импортирование, вызов. )

-Основы регулярных выражений

В настоящее время, актуальной версией является Django 2.0. Но я советую начать изучение с версии 1.11. Почему именно так:

1. По Django 2.0 мало различных материалов на русском языке. Для 1.11 материалов достаточно.

2. Django 2.0 и 1.11 очень похожи, но в 2.0 сделали упрощённый синтаксис маршрутизации URL. Из-за этого могут возникнуть сложности на начальном этапе, если пытаться обучаться по материалам основанным на 1.11 версии.

3. Большинство готовых приложений и расширений до сих пор поддерживают только 1.11 версию и не поддерживают 2.

4. Расширенная поддержка версии 1.11LTS заканчивается в 2020 году, а 2.2LTS пока не видно.

Итак, расскажу как изучал я. Может быть кому-нибудь покажется полезной данная информация.

1. Проходим туториал на Django-girls.

Шаг за шагом копипастим и пытаемся понять что вообще происходит.

-Основы работы в консоли Linux

-Создание и работа в виртуальном окружении Python.

-Основы основ Django (urls, модели, шаблоны, views)

Альтернативный вариант (более короткий):

Версия 1.9 а не 1.11, но в этом нет ничего страшного.

2. Цикл лекций «Web-технологии. Разработка на DJANGO» от Mail.ru

Если не интересны основы-основ про web-разработку (уже знаете или задача быстро освоить Django), тогда начинаем смотреть с «9. Web-технологии. MVC фреймворки | Технострим» и дальше.

-Архитектуре и принципам взаимодействия компонентов, основам Django

3. Книга «Django: практика создания Web-сайтов на Python» Владимир Александрович Дронов:

ссылка: сами кУпите или найдёте.

Читаем главы с 1 по 7. Главу 2 опционально можете пропустить, если знакомы с основами Python.

-Пониманию основ MVC

-Через примеры кода начнет приходить понимание, как все работает.

-Через копипасту проекта в общем виде начали понимать как все устроено и работает

-Через лекции MAIL.ru узнали как работают web-приложения, как выглядит архитектура типичного web-приложения(взаимодействие бекенда-фронтэнда, работа протоколов, общая архитектура), узнали место Django в этой архитектуре

-Через книгу более детально познакомились с паттерном проектирования MVC (что такое модель, контроллер, представление), через примеры кода начали понимать как это может работать.

II. ПРОДОЛЖЕНИЕ НАЧАЛА(продолжаем «копипастить»):

1. Ищем курс «iTBursa Python&Django». Продажу курса уже закрыли (скорее всего видимо потому, что курс попал в открытый доступ). В курсе есть основы Python и Django. Плюсом идут основы: html/css, bootstrap web, http, databases, linux, shell, git/github, nginx, deployment.

Продолжаем копипастить уже по этому курсу, но теперь самостоятельно выполняем «Контрольные задания»(или не выполняем). В принципе этот курс мог бы заменить все вышеперечисленное. Но так как каждый человек воспринимает информацию по разному, ИМХО лучше усвоится информация, полученная из разных (по типу и виду подачи информации) источников.

Дополнительно: курс itvdn-Django от Антона Мазуна

2. Продолжаем читать и перечитывать Дронова

3. Изучаем официальную документацию или перевод документации 1.9(djbook.ru)

-На этом этапе уже должно быть освоено достаточное количество материалов для написания своего собственного приложения.

II. КОНЦА НЕ ВИДНО(создаём свой собственный проект):

Собственно если все делали правильно, на этом этапе должны быть все необходимые знания для реализации собственного проекта. По сути, можно сосредоточиться только на Джанго, а фронтэнд слепить из кусков Bootstrap.

Теперь отправляемся в свободное плавание на просторы интернета. Теперь уже сами ищем статьи, видео, гайды, бестпрактис. Продолжаем читать Дронова и переходим на актуальную версию Django 2.x

Дополнительно можно начать читать:

-Django подробное руководство. Адриан Головатый. Джейкоб Каплан-Мосс. Книга очень старая (2010), многое изменилось, но общие принципы остались те же.

-Tango with Django. Многие советуют эту книгу.

-Web Development with Django cookbook

Извиняюсь за возможные орфографические, и в особенности, за пунктуационные ошибки.

Источник

Веб-фреймворк Django (Python)

Django является чрезвычайно популярным и полнофункциональным серверным веб-фреймворком, написанным на Python. Данный модуль расскажет о том, почему Django один из самых популярных серверных веб-фреймворков, как установить среду разработки, и как начать использовать его для создания собственных веб-приложений.

Требования

Перед началом работы с этим модулем вам не обязательно уже быть знакомым с Django. Вам бы пригодилось общее понимание того, что такое серверное веб-программирование и веб-фреймворки, почерпнутое, в идеале, из топиков другого нашего модуля Первые шаги серверного программирования веб-сайтов.

Рекомендуется базовое понимание концепций программирования и языка Python, но это не обязательно для освоения основных понятий.

Примечание: Python является одним из самых доступных в чтении и понимании для новичков языком программирования. Тем не менее, если вы захотите глубже понять этот модуль, в Интернете сейчас доступны многочисленные бесплатные книги и учебные пособия (новички в программирование возможно захотят посетить Python for Non Programmers на вики-страницах python.org).

Руководство

Задания

Следующее задание проверит ваше понимание того, как создать сайт с помощью Django, как описано в руководствах, перечисленных выше.

DIY Django мини-блог В этом задании вы будете использовать некоторые знания, которые вы узнали из этого модуля, чтобы создать свой собственный блог.

Источник

Ускоренный курс Django

Введение

Наша цель

Мы делаем веб-сайт, на котором вы можете загрузить изображение с названием, датой и описанием. Просто.

Так что же такое Джанго?

Django /JANG-oh/ — Тип инструмента (веб-фреймворк), наиболее известный тем, что помогает людям быстро создавать аккуратные веб-сайты с минимумом ошибок.

Создание чего-либо в Django следует по этой схеме:

Django делает более сложные (и действительно забавные) вещи, но если вы только начинаете, это все, что вам нужно знать на данный момент.

Настройка нашего проекта

ВНИМАНИЕ: Пользователи Windows
По умолчанию в Windows нет командной строки Unix, что является предварительным условием для этого ускоренного курса. Октябрьское обновление для Windows 10 2018 предлагает подсистемы Linux, такие как Ubuntu. Пожалуйста, установите и настройте подсистему Linux для использования командной строки Unix.

Мы собираемся использовать терминал вашего компьютера для настройки среды Python и Django. Давайте сделаем проект в папке Documents нашего компьютера, поэтому введите эти команды

Затем мы войдем в папку нашего проекта, включим нашу новую среду Python и установим Django.

Теперь, когда Django установлен, мы получили несколько новых команд. Давайте начнем с создания проекта в Django, миграции нашей базы данных разработки и, наконец, первого запуска нашего локального сервера разработки, чтобы убедиться, что мы все сделали правильно.

Чтобы увидеть сервер разработки в действии, перейдите по адресу 127.0.0.1:8000 в своем браузере. Должна появиться стартовая страница Django:

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

База данных

Затем возьмите свой любимый текстовый редактор или IDE на Python, потому что мы собираемся углубиться в Django. Мы собираемся начать с создания приложения Django, в котором мы будем писать все наши модели для этого проекта.

Чтобы наш основной проект распознал это приложение, нам нужно сообщить ему о существовании нашего приложения базы данных, добавив его в INSTALLED_APPS в django_cc/settings.py следующим образом:

Поддержка медиафайлов

Давайте добавим в конец settings.py следующее, чтобы Django знал, где хранить медиа-файлы, такие как загружаемые нами изображения:

Нам нужно будет сделать то же самое для нашей папки шаблонов, обновив DIRS для обработки [os.path.join (BASE_DIR, ‘templates’)] вместо значения по умолчанию [] :

Отлично, теперь наш проект настроен, и мы можем начать с написания наших моделей.

Написание наших моделей

Чтобы завершить наши модели, скажем Django отсортировать их от самых новых к самым старым:

Перенос наших новых моделей

Завершите наши модели следующими двумя командами, которые, по сути, сообщают Django, что мы внесли некоторые изменения и что они должны быть применены к нашей базе данных:

Поздравляю! Наша база данных полностью настроена для наших сообщений. Однако есть одна проблема. Мы не можем редактировать их прямо сейчас. Давайте настроим панель администратора Django, чтобы вы могли делать несколько сообщений.

Панель управления администратора

Внутри нашего приложения базы данных перейдите в admin.py и добавьте следующее:

Затем мы создадим суперпользователя, чтобы мы могли войти в панель администратора. Введите следующую команду и следуйте подсказкам. Вам нужно только заполнить подсказки для имени пользователя и пароля.

После завершения перейдите к 127.0.0.1:8000/admin и войдите в систему с учетными данными, которые вы только что написали. Вы должны увидеть эту страницу:

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

Отсюда вы можете добавлять сообщения в свой проект Django. Мы официально закончили с нашими моделями. Далее мы создадим наше представление, чтобы Django мог обслуживать наши сообщения.

Логика представлений

В urls.py нам нужно будет добавить новый путь, чтобы Django знал, когда этот URL запрашивается для вызова нашего представления:

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

Шаблоны со стилем

При посещении 127.0.0.1:8000 должен появиться список всех сообщений, которые мы добавили в панель управления:

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

Теперь у нас есть веб-сайт, на котором отображается то, что мы добавляем в нашу панель управления в карточках Bulma. Аккуратно.

Завершение

Источник

Что бы я хотел знать когда начинал изучать Django? — очень общий взгляд

Здесь на Хабре много различных инструкций по использованию Django. Эти инструкции часто включают много кода и представляют последовательность шагов, которые нужно сделать, чтобы создать проект.

Когда я начинал изучать Django и Wagtail по таким инструкциям, меня часто смущало, что пара команд создает кучу непонятных файлов (особенно на самом старте). Последующее описание этих файлов в инструкциях содержало слишком много деталей, которые трудно было усвоить за раз.

В этом посте я бы хотел посмотреть на Django с очень «философского вида» — минимум кода, максимум общих фактов. Думаю, что такой взгляд поможет тем, кто хочет начать изучать Django но теряется на старте.

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

Хочу также сказать, что не являюсь профессионалом по части веб-программирования — я в этой области скорее любитель, которого интересуют исключительно личные проекты — один из них сайт по расшифровке данных ДНК тестов https://ru.bezoder.com — написан на Wagtail.

Сначала давайте вспомним, что сайт в интернете это просто программа, которая, возможно, работает почти на таком же компьютере, что находится перед вами.

Ваш компьютер (телефон и т.п.) посылает какой-то запрос к чужому компьютеру в интернет, тот его обрабатывает и отвечает. При обработке чужой компьютер, возможно, делает запрос или производит запись в базу данных. Теперь представим, что необходимо запрограммировать компьютер в интернете, чтобы он правильно обрабатывал каждый запрос.

Это можно сделать вообще на каком угодно языке программирования — вы получаете запрос и на его основе что-то выполняете. Но представьте сколько может быть вариантов как запрограммировать этот компьютер — их может быть бесконечно много! Например, можно написать функцию что-то вроде:

Думаю, понятно, что это был бы ужасный вариант программирования.

Нам нужно сделать все так, чтобы код был читаемым, безопасным, легко дополняемым, использовал какие-то возможности языка, на котором написан…

С таким набором задач нужно придумать какую-то концепцию.

Концепция Django

Django предлагает все разделить на «слои«. Слои отвечают за разные составляющие вашей программы. Между слоями есть связь, но она не затрудняет разработку каждого слоя изолированно (без большого внимания к другим слоям) — в Django это называется loose coupling.

Вот несколько важных слоев Django:

Тут я немного подробнее остановлюсь на слоях Модели, Виды и Шаблоны.

Слой модели

Как видите, в базе каждая строка это запись, относящаяся к пользователю сайта. В строке есть данные различного типа — в нашем случае числа и текст.

Распространенным языком баз данных является SQL — определенными командами вы можете создавать новые таблицы в базе или вносить и получать данные в и из существующих таблиц.
У SQL есть уязвимости — подробнее. Вкратце — если определенным образом расставить кавычки и точки с запятой в данных, которые отправляются в SQL команду, часть этих данных может быть интерпретирована как составляющая SQL команды.

Django берет всю головную боль, связанную с проблемами SQL на себя — вам даже не надо знать SQL, чтобы пользоваться Django, от вас нужен только python — Django сам сформирует SQL команды для создания таблиц, поиска и записи данных в таблицы и все это будет безопасно.
Идея Django в том, что классы на python повторяют структуру таблиц вашей базы данных.

То есть, для таблицы выше я могу создать класс в python что-то вроде:

но как связать такой класс с базой данных? Вот тут начинается магия Django:

Вы просто используете django.db.models.Model чтобы создать класс, далее каждое поле в вашем классе это также поле, взятое из django.db.models. В моем случае поле name это текстовое поле CharField, поле karma это число float. Список всех полей (Field types) есть в официальной документации.

У каждого поля есть опции (Field options) — в коде выше опция это max_length = 20. Опции зависят от полей, которые вы создаете в базе — например, max_length = 20 это максимальная длина в символах поля name в базе. В документации по ссылке выше также описаны опции для всех полей.

На основе этого кода Django сам создаст таблицу в базе данных и то, что я назвал полями в классе будут столбцами в этой таблице. Django дает вам также удобные команды в python как получать или записывать значения в базу данных. Все делается с помощью методов models.Model а также абстракции «Manager», отвечающей в Django за коммуникацию с базой данных (в данном посте я эти абстракции детально не рассматриваю). Например, CustomUser.objects.filter(name=«Михаил») вернет всех пользователей с именем «Михаил».

Такая связь между строками в базе данных и объектами (экземплярами, инстансами) в Python называется Object-relational mapping — в нашем случае Django-ORM.

А наши модели повторяют структуру базы данных и при этом являются классами в Python. Это значит, что к моделям (классы в Python) можно добавить методы. Например, продолжая логику сайта Хабр, я могу добавить метод для изменения кармы:

Тут other — это другой пользователь. Как вы знаете здесь определенная логика добавления кармы. Всю эту логику я могу, например, создать в указанном методе.

В Django вы думаете какие таблицы хотите создать в своей базе и потом просто создаете классы python по примеру выше.

Слой виды

Следующим важным, на мой взгляд, слоем является слой видов (views). Ваши модели это некоторые абстракции, с которыми вам удобно работать или они интуитивно понятны. Но, когда вы хотите что-то показать пользователям, то, возможно, вас будут интересовать иные абстракции.

Например, вы создали три модели в Django: CustomUser, Article и Advertisement с разными полями. Модель Article это статья сайта, Advertisement — это реклама, которую вы показываете на сайте, CustomUser — зарегистрированный пользователь сайта.

Когда вы захотите создать вебстраницу со статьей, то вам понадобятся данные сразу из нескольких ваших моделей — разумеется вы хотите показать все поля в самой статье (название, содержание и т.д.), вы, скорее всего, также хотите показать какую-то рекламу рядом с этой статьей. Причем реклама зависит не от содержания статьи а от поведения пользователя CustomUser. При таком подходе будет нужна какая-то логика — как собирать данные. Так, слой view в данном случае и будет подходящим местом для этой логики. Тут можно собрать все данные, которые будут относиться к тому, что вы хотите показать.

Есть два типа видов view в Django — функциональный и классовый.

Функциональный вид это просто Python функция с аргументом request — это запрос к вашему сайту. В нем содержится информация о пользователе, типе запроса и многом другом. На основе этой информации вы формируете ответ и возвращаете его в своей функции.

Еще один тип view — классовый. Он позволяет создавать виды не на основе функций, а виды как экземпляры классов. Тут Django предоставляет также кучу всяких облегчающих жизнь классов и функций. Предположим, вы хотите создать вид на основе статьи Article:

Классовый вид на основе DetailView автоматически соберет всю информацию модели Article и затем отправит ее в следующий слой Django:

Слой шаблоны

В коде выше template_name это переменная для названия html шаблона, который будет использован для формирования веб страницы, которая и будет показана пользователю. Вот пример кода из такого шаблона:

Источник

10 полезных советов для начинающих изучать Django

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

1. Используйте относительные пути в конфигурации

2. Используйте тег

Вместо того, чтобы хардкодить ссылки, попробуйте использовать обратно совместимый тег <% url %>. Это даст вам абсолютный URL, но если проект будет перемещен, ссылки остануться актуальными.

По сути <% url %>берет имя представления и его параметры и делает реверсивный просмотр, чтобы вернуть запрошенный URL. Если вы внесете изменения в urls.py, ссылки не сломаются.

3. Используйте админку Django для ваших приложений на PHP

Одно из достоинств Django его система авторизации пользователей, которая встроена в ядро Django. Ее очень легко настроить и она содержит в себе удобную систему для авторизации пользователей и задания необходимых настроек.

Эта система авторизации настолько хороша, что многие предлагают использовать ее как админку для приложений на PHP.

4. Используйте отдельный сервер для обработки статики

Django позволяет вам располагать статические файлы в dev-окружении, но не в вашем production-окружении.

Django спроектирован так, что бы спасти вас от себя самого. Если вы попытаетесь использовать статические файлы с того же экземпляра Apache, что обслуживает Django, вы потеряете в производительности.
Apache переиспользует процессы между каждым запросом, поэтому, если однажды процесс закешировал весь код и библиотеки для Django, они остаются в памяти. И если вы не используете этот процесс для того, чтобы
обработать запрос Django, вся эта память будет использована зря.

В случае если вы используете отдельный сервер (или virtualhost) для обработки статики, производительность вашего приложения не пострадает.

5. Используйте Django debug toolbar.

Инструменты для отладки несут неоценимую помощь в любом языке. Они ускоряют процесс разработки помогая находить ошибки и потенциальные проблемы которые могут возникнуть.

Django debug toolbar позволяет просмотреть все выполненные SQL запросы в процессе рендеринга представления и вы также можете просмотреть stacktrace для любого из них.

6. Django юнит-тестирование

Юнит-тестирование хороший способ убедится что ваши изменения в коде работают так, как ожидается и не ломают предыдущий код. Одна из прекрасных возможностей Django — это то, что писать юнит тесты невероятно просто. Django предлагает возможность использовать doctest или unittest прямо из коробки, а документация Django содержит отличные обучающие материалы и примеры кода, как настроить юнит тесты, чтобы обнаружение багов стало еще более простым занятием.

7. Визуализация моделей

Установите Django Command Extensions и pygraphviz и затем используйте следующую команду чтобы получить удобную визуализацию моделей проекта в Django:

8. Virtualenv

Virtualenv + Python = палочка-выручалочка. Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты. Также это может оказаться удобным, когда на сервере необходимо держать разные версии Django или python.

9. Используйте Memcache

Когда низкая производительность может стать проблемой, вы скорее всего захотите установить какую-либо систему кеширования. Django предлагает множество вариантов для кеширования, но лучшим из них на сегодняшний день является memcached.
Установить и использовать memcached весьма просто, если вы используете модуль cmemcache. После того как модуль будет установлен, вам нужно внести одну строку в конфигурацию, чтобы ваши страницы начали выдаваться еще быстрее.

10. Автозагрузка кастомных тегов, которые можно использовать во всех шаблонах

Если добавить это в модуль который загружается по умолчанию (settings.py,urls.py,every app models.py), у вас будут доступны все теги и фильтры из вашего кастомного модуля в любом шаблоне, без использования <% load custom_tag_module %>.

Аргументом к template.add_to_builtins() может быть путь к любому модулю; ваш кастомный модуль не обязательно должен быть привязан к какому то определенному приложению.
Например, это так же может быть модуль расположенный в корневом каталоге проекта (например: ‘ project.custom_tag_module ‘).

Стоит ли изучать Django в 2020?

Если вы начинающий программист, и задаетесь вопросом: должен ли я изучить Django? Короткий ответ — да.

Если вам потребуется реализовать вашу идею с минимальными затратами и быстро — Django подходящий инструмент. Он бесплатен, свободен и позволяет сделать разработку web-проектов еще проще. Django лучшее решение для разработки прототипов приложений, поскольку он включает все необходимое для создания необходимого функционала прямо из коробки. Например, админка может быть подключена одной строчкой кода.

Если вы разработчик уже знакомый с Python, и находитесь в поисках фреймворка для бэкенда вашего приложения или сайта, Django также будет хорошим выбором.
Фреймворк содержит в себе библиотеки и инструменты позволяющие проводить различные операции и эффективно обрабатывать большое количество запросов пользователей в реальном времени.
Поэтому процесс разработки становится быстрым, так как вам не нужно создавать каждый компонент с нуля.

Преимущества Django

1. Быстрый

Разработчики сделали фреймворк с учетом того, что бы он был простым и в то же время быстрым. Он содержит в себе библиотеки, которые позволят вам не изобретать колесо заново или создавать проект с нуля.

2. Безопасный

Когда речь заходит о безопасности, фреймворк позволяет не наступать на грабли и избежать многих проблем с безопасностью, таких как SQL-иньекции, XSS, CSRF, из-за возможных ошибок программиста.

3. Панель администрирования

В фреймворке сразу присутствует панель администрирования и система авторизации, которая позволяет сэкономить время на управлении пользователями, и создании отдельной панели администрирования для бэкенда.

4. Масштабируемый

Фреймворк подходит для проектов с разной степенью нагруженности, и если небольшой проект в будущем может вырасти, никаких проблем — Django прекрасно масштабируется под большие нагрузки.

5. Data science и аналитика

Мы уже знаем, что Django сделан на Python, а Python известен как прекрасный инструмент для создания проектов с использованием искусственного интеллекта и машинного обучения. Следовательно, если вы планируете интегрировать в ваш проект машинное обучение или анализировать и обрабатывать большие объемы информации, то вы определенно должны попробовать Django.

6. Поддержка сообществом

Вокруг Django существует довольно большое и активное сообщество, а сам фреймворк имеет богатую и удобную документацию.

Быстрый старт

Чтобы сразу быстро начать кодить на Джанго командой и тестировать, я собрал и выложил образ VPS в маркетплейсе с пустым проектом Django 3.1.3 и

изучение django с чего начать. изучение django с чего начать фото. картинка изучение django с чего начать. смотреть фото изучение django с чего начать. смотреть картинку изучение django с чего начать.

Стоимость такого сервера будет 769 рублей в месяц – 538 рублей, при оплате за год.

И напишите свои любимые лайфхаки при работе с Django в комментариях — попробуем собрать пост советов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *