Django изучаем: Как правильно начать изучение django? — Хабр Q&A

Содержание

Видеоуроки по Джанго | All about Django framework and its libraries

Лекции о Python 3 от Тимофея Хирьянова при поддержке Московского физико-технического института.

Лекция №5.

Лекции о Python 3 от Тимофея Хирьянова при поддержке Московского физико-технического института.

Лекция №4.

Лекции о Python 3 от Тимофея Хирьянова при поддержке Московского физико-технического института.

Лекция №3.

Лекции о Python 3 от Тимофея Хирьянова при поддержке Московского физико-технического института.

Лекция №2.

Лекции о Python 3 от Тимофея Хирьянова при поддержке Московского физико-технического института.

Лекция №1.

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

В этом уроке мы добавим индивидуальные страницы для каждой новостной статьи. Мы пропишем URL проверку, а также создадим правильный вывод из базы данных лишь одной статьи на странице сайта.

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

В этом уроке мы закончим работу над страницей новостей на сайте. Мы создадим шаблон, который будет получать данные из Python и выводить их через цикл в HTML-шаблоне.

Наш сайт имеет три раздела, но сделано только два из них. В этом уроке мы начнем создание новостной категории сайта и создадим табличку в базе данных для всех статей на сайте.

Чтобы сделать HTML-шаблоны более динамическими нам необходимо передавать в них данные из Python. В этом уроке мы научимся технологии, которая позволяет передавать значения из логической части сайта в визуальную.

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

Язык Python имеет отличный шаблонизатор, который называется Jinja. В ходе этого урока мы научимся работать с Jinja и научимся создавать и выводить блоки HTML кода в шаблонах HTML страниц.

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

Для работы с Django необходимо установить Python, а также саму библиотеку Django. В этом уроке мы скачаем и установим все необходимое для комфортной работы с библиотекой в дальнейшем.

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

Самый нескучный урок по Python Django новой версии на русском языке!

Выучи за 1 час и уже пили свои первые сайты.

Видео, в котором с нуля создаётся полноценное приложение на Python и Django, позволяющие получать информацию про погодные условия в различных городах мира.

Видео, рассказывающее о том, как верстать страницы используя Bootstrap для сайта, написанного на Django.

Все что нужно знать о создании с нуля проекта Django и его окружения. Доклад с Moscow Python Meetup №54

Лучшие видеоруководства и скринкасты про Django за 2018 год.

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

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

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

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


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

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

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

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

Если запрос == google.ru:
        ответ "Привет"
Если запрос == google.de:
        ответ "Hallo"
...

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

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

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

Концепция Django

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

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

  • Модели (Models) это слой ваших данных и то как вы их храните их в базе данных
  • Виды (views) этот слой собирает все данные которые необходимо для создания веб страниц или обработки данных, отправленных через формы
  • Шаблоны (Templates) этот слой получает данные из видов и отображает их на вебстранице (в этом слое вы работаете уже с html)
  • Ссылки (url) этот слой организует работу ссылок на вашем сайте на какую ссылку нужно создавать какой вид и какой шаблон
  • Формы (Forms) этот слой помогает создавать и обрабатывать веб формы для данных от пользователей

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

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

Слой модели

Первый и, наверно, самый важный слой это модели(models) — отвечает за базу данных. База данных это много всяких таблиц — например, может быть таблица «пользователи» такого вида:

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

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

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

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

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

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

class User:
    def __init__(id, name, surname, karma)
        self.id = id
        self.name = name
        ...

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

# мы просто импортируем модуль models из Django
from django.db import models
# создаем класс, который наследует models.Model
class CustomUser(models.Model):
    # создаем поля для базы данных в классе
    name = models.CharField(max_length = 20)
    ...
    karma = models.FloatField(...)        
    ...
# Еще одна таблица в базе данных - статья
class Article(models.Model):
    # создаем название и содержание статьи
    title = models.CharField(...)
    content = models.TextField(...)        
    ...

Вы просто используете 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) можно добавить методы. Например, продолжая логику сайта Хабр, я могу добавить метод для изменения кармы:

from django.db import models

class CustomUser(models.Model):
    ...
    # пример метода в модели Django
    def change_karma(self, other):         
         ....
         if ...:
              self.karma = self.karma +1
              ...
         else:
         ...

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

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

Слой виды

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

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

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

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

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

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

# импорт полезного класса
from django.views.generic import DetailView
# импорт созданной в другом файле модели Article
from .models import Article
# создание классового вида 
class ArticleDetailView(DetailView):
    # модель на основе которой мы хотим создать вид
    model = Article
    # имя, которое будет использовано в html шаблоне (это другой слой - рассмотрим далее)
    context_object_name = 'article'
    # имя html шаблона, на основе которого будет создана веб страница
    template_name = 'article/article_detail.html'

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

Слой шаблоны

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

  <h2>{{ article.title }}</h2> 
  <div>{{ article.content }}</div>       

{{ article.title }} и {{ article.content }} это название статьи и ее содержание, заключенные в html теги. title и content повторяют название полей модели Article, которую вы создали в слое Модели. Слово article мы указали в context_object_name в виде. В результате обработки Django вставит соответствующие поля из Article в шаблон.

Резюме

Это общий взгляд на некоторые Django слои. Описанная концепция позволяет разделить отдельные блоки программы. В слое модели вы создаете удобные абстракции вашей базы данных, в слое виды вы решаете, какие данные вы хотите показать, и в слое шаблоны вы создаете уже дизайн ваших страниц на основе html и добавляете в шаблоны немного логики с помощью языка Jinja — это из примера с фигурными скобками — {{ article.name }}.

Я тут не затронул довольно много важных тем — например связи между вашими моделями. У каждой статьи может быть один автор или несколько авторов — Django с легкостью справится с любым из перечисленных вариантов, и с помощью одной строки в Python вы сможете получить автора статьи или же коллекцию авторов в виде экземпляров класса Автор, созданного на основе models.Model.

Но откуда столько файлов?

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

Руководство по Django часть 2: создание скелета — Изучение веб-разработки

Это вторая статья из нашего руководства по Django, которая показывает, как можно создать «скелет» сайта, как фундамент, на котором можно строить всё остальное: настройки, ссылки, модели, контроллеры и представления.

Обзор

Эта статья показывает, как можно создать «скелет»(прототип) сайта, который затем можно расширить при помощи различных настроек, url адресов, моделей, представлений, и шаблонов (эти темы будут объясняться в последующих статьях).

Алгоритм следующий:

  1. Использовать django-admin для создания папки проекта, шаблонов остальных файлов, и скрипта для управления проектом (manage.py).
  2. Использовать manage.py для создания одного или нескольких приложений.

    Заметка: Сайт может состоять из одной или нескольких различных частей, например: основная часть, блог, вики, раздел загрузок, и так далее. Философия Django подталкивает разработчиков создавать эти части, как разные приложения, которые, если понадобится, могут быть использованы повторно в других проектах. 

  3. Зарегистрировать в настройках эти приложения, чтобы использовать их в проекте.
  4. Настроить маршруты url адресов для каждого из приложений.

Для Сайта местной библиотеки папка сайта и проекта будет называться locallibrary, и у нас будет одно приложение с названием catalog. Верхняя структура проекта будет следующей:

locallibrary/         # Папка сайта
    manage.py         # Скрипт для управления проектов (создан manage.py)
    locallibrary/     # Папка сайта/проекта (создана manage.py)
    catalog/          # Папка приложения (также создана manage.py)

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

Создание проекта

Для начала откройте командную строку/терминал, перейдите в ту папку, куда вы хотите поместить проект Django(лучше в папке профиля пользователя C:\Users\user_name, при запуске командной строки используется именно эта директория), и создайте папку для вашего нового сайта (в данном случае: locallibrary). Затем войдите в эту папку, используя команду cd:

mkdir locallibrary 
cd locallibrary

Создайте новую папку, используя команду django-admin startproject как в примере ниже, и затем зайдите в созданную папку.

  django-admin startproject locallibrary .
cd locallibrary

Команда django-admin создаст файловую структуру, как в примере ниже:

locallibrary/
    manage.py
    locallibrary/
        settings.py
        urls.py
        wsgi.py

Подпапка проекта locallibrary это ключевая директория нашего проекта: 

  • settings.py содержит в себе все настройки проекта. Здесь мы регистрируем приложения, задаём размещение статичных файлов, настройки базы данных и так далее.  
  • urls.py задаёт ассоциации url адресов с представлениями. Несмотря на то, что этот файл может содержать все настройки url, обычно его делят на части, по одной на приложение, как будет показано далее.
  • wsgi.py используется для налаживания связи между вашим Django приложением и веб-сервером. Вы можете воспринимать его, как утилиту.

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

Создание приложения Каталог

Выполнив предыдущие шаги, запустите следующую команду для создания приложения catalog, который будет размещён внутри папки locallibrary (команду необходимо выполнять из папки, в которой находится manage.py):

python3 manage.py startapp catalog

Заметка: приведённая выше команда справедлива для GNU Linux/Mac OS. На Windows команда должна иметь вид: py -3 manage.py startapp catalog

Если вы работаете под Windows, заменяйте команду python3 на py -3 в этой и следующих статьях.

Эта команда создаст новую папку и наполнит её файлами различных частей приложения (выделенные полужирным ниже). Большинство файлов названы, исходя из их назначения (например контроллеры(views) должны находится во views.py, модели в models.py, тесты в tests.py, настройки административной части в admin.py, регистрация приложения в apps.py) и уже содержат некоторый шаблонный код для работы с вышеназванными объектами.

Обновлённая директория должна выглядеть следующим образом:

locallibrary/
    manage.py
    locallibrary/
    catalog/
        admin.py
        apps.py
        models.py
        tests.py
        views.py
        __init__.py
        migrations/

Кроме перечисленных выше файлов были созданы:

  • Папка migrations используется, чтобы хранить»миграции» — файлы, которые позволяют вам автоматически обновлять базу данных по мере изменения моделей. 
  • __init__.py — пустой файл для того, чтобы Django и Python распознавали папку как Python модуль и позволяет нам использовать его объекты внутри других частей проекта.

Заметка: Заметили, что некоторых файлов не хватает? В то время, как там нашли себе место файлы для контроллеров(views) и моделей(models), файлов для настройки url соотносителя, шаблонов, и статичных файлов создано не было. Далее мы покажем, как их создать (они не обязательны для каждого сайта, но нужны в данном примере).

Регистрация папки с приложением

После создания приложения, нам нужно зарегистрировать его в проекте, чтобы различные утилиты затрагивали его своим действием (например при добавлении моделей в базу данных). Приложения регистрируются добавлением их названий в список INSTALLED_APPS в настройках проекта(который, как мы помним, называется settings.py). 

Откройте файл locallibrary/locallibrary/settings.py и найдите в нём список INSTALLED_APPS . Затем добавьте новую строку в конец списка, как показано полужирным ниже.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'catalog.apps.CatalogConfig', 
]

Новая строка указывает на файл конфигурации приложения (CatalogConfig), который был создан в /locallibrary/catalog/apps.py , когда вы создали приложение.

Заметка: Легко заметить, что в INSTALLED_APPS уже подключено большое количество приложений (и объектов MIDDLEWARE, ниже в файле конфигурации). Они добавляют поддержку админ-панели Django и, как следствие, огромное количество функционала (включая сессии, аутентификацию и прочее).

Настройка базы данных

На этом шаге обычно указывают базу данных для будущего проекта — имеет смысл использовать для разработки и размещённого в Сети одну и ту же базу данных, по возможности, чтобы исключить различия в поведении.  Про различные варианты вы можете прочитать в документации Django в разделе Базы данных. 

Мы будем использовать базу данных SQLite для этого проекта, потому что не предпологаем большое количество одновременных запросов на неё, а ещё потому, что для её настройки совсем не надо ничего делать! Вы можете видеть, что база данных уже настроена в settings.py (подробная информация указана ниже):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Так как мы используем SQLite, то нам не нужно ничего делать.

Давайте продолжим!

Другие настройки проекта

Файл settings.py так же применяется и для некоторых других настроек, но на данном шаге имеет смысл поменять разве что TIME_ZONE — это значение должно быть представлено строкой, указанной в списке часовых поясов tz (колонка TZ в таблице, в строке временной зоны, которая вам нужна). Измените TIME_ZONE на одну из строк из таблицы, которая отвечает вашему часовому поясу. Например:

TIME_ZONE = 'Europe/Moscow'

В файле присутствует две настройки, которые не нужно менять сейчас, но о назначении которых следует знать:

  • SECRET_KEY. Это секретный ключ, который используется Django для поддержки безопасности сайта. Если вы раскроете этот ключ в процессе разработки кому-либо, то необходимо будет его сменить (возможно считать его с какого-либо файла на сервере или переменной окружения) когда будете размещать проект на сервер. 
  • DEBUG. Включает подробные сообщения об ошибках, вместо стандартных HTTP статусов ответов. Должно быть изменено на False на сервере, так как эта информация очень много расскажет взломщикам. 

Подключение URL-адреса

При создании сайта, был создан файл сопоставления URL (urls.py) в корне проекта. Хотя можно использовать его для обработки всех URL адресов, более целесообразно подключать отдельные файлы сопоставлений для каждого приложения.

Откройте locallibrary/locallibrary/urls.py и обратите внимание на закомментированный текст, который объясняет суть происходящего. 

"""
locallibrary URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.urls import path
from django.contrib import admin


urlpatterns = [
    path('admin/', admin.site.urls),
]

URL соотношения хранятся в переменной urlpatterns, которая является списком функций path(). Каждая path() функция или ассоциирует шаблон URL с контроллером(views) или же его с другим таким списком (во втором случае, первый URL становится «базовым» для других, которые определяются в дочернем списке). Список urlpatterns инициализирует список функции, которая, например, соотносит admin/ с модулем admin.site.urls , который содержит собственный файл-соотноситель.

Добавьте строчки, приведённые ниже в низ файла urls.py , чтобы добавить новый элемент в список urlpatterns. Этот элемент содержит url() который направляет запросы с URL catalog/ к модулю  catalog.urls (файл с относительным путём /catalog/urls.py).

# Используйте include() чтобы добавлять URL из каталога приложения 
from django.urls import include
from django.urls import path
urlpatterns += [
     path('catalog/', include('catalog.urls')),
]

Теперь давайте перенаправим корневой URL нашего сайта (например 127.0.0.1:8000) на URL 127.0.0.1:8000/catalog/; это единственное приложение, которое мы собираемся использовать, поэтому это вполне разумно. Чтобы это использовать, нам понадобится специальная функция (RedirectView), которая принимает первым параметром новый относительный URL на который следует перенаправлять (/catalog/) когда указанный в функции url() адрес  соотносится с адресом запроса (корневой URL, в данном случае).

Добавьте следующие строчки, тоже в конец файла:

# Добавьте URL соотношения, чтобы перенаправить запросы с корневового URL, на URL приложения 
from django.views.generic import RedirectView
urlpatterns += [
    path('', RedirectView.as_view(url='/catalog/', permanent=True)),
]

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

Добавьте последнюю часть в конец файла:

# Используйте static() чтобы добавить соотношения для статических файлов
# Только на период разработки
from django.conf import settings
from django.conf.urls.static import static

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Заметка: Существуют различные способы дополнения списка urlpatterns (в примере мы просто добавляли объект, испольщуя оператор += чтобы чётко разделить изначальный и дописанный код). Вместо этого, мы могли бы добавить соотношения внутрь определения переменной:

urlpatterns = [   path('admin/', admin.site.urls),
path('catalog/', include('catalog.urls')),path('',
RedirectView.as_view(url='/catalog/', permanent=True)), ] + 
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Кроме того, мы добавили import вниз файла (from django.urls import include) ,чтобы видеть, что мы добавили, но обычно все import’ы добавляются в верхнюю часть файла.

Напоследок, создайте файл urls.py внутри папки catalog, и добавьте следующий код, чтобы определить (пустой) urlpatterns. Сюда мы будем добавлять наши URL соотношения, по мере разработки сайта. 

from django.urls import path
from . import views


urlpatterns = [

]

Тестирование работы скелета

На этом, мы создали прототип сайта. Пока сайт ничего не умеет делать, но стоит запустить его, чтобы убедиться, что мы ничего не сломали. 

До этого, нам предстоит впервые запустить  миграцию базы данных. Это обновит нашу базу данных и добавит туда необходимые модели (и уберёт некоторые предупреждения, которые были бы показаны при попытке запуска).

Запуск миграций базы данных

Django использует Объектный Соотноситель Связей (ORM) чтобы соотносить определения моделей в Django приложении со структурами данных, которые используются базой данных. Когда мы меняем наши модели, Django отслеживает изменения и может создать файлы миграций (в папке /locallibrary/catalog/migrations/) чтобы применить соответствующие структуры данных к базе, чтобы та соответствовала модели.

При создании сайта, Django автоматически добавил несколько моделей, чтобы мы могли их использовать в админ-панели (о которой мы поговорим позже). Выполните следующие команды, чтобы создать нужные таблицы в базе данных, соответствующие этим моделям (убедитесь, что вы находитесь в папке с manage.py):

python3 manage.py makemigrations
python3 manage.py migrate

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

Команда makemigrations создаёт (но не применяет) миграции для всех приложений, которые установлены в ваш проект (вы так же можете указать в конце имя конкретного приложения, чтобы создать миграции только для него). Это даёт вам возможность проверить код перед тем, как их применить — когда вы станете хорошо разбираться в Django, то сможете даже менять их!

Команда migrate применяет созданные миграции к базе (Django отслеживает, какие миграции были созданы для данной базы).

Заметка: Посмотрите раздел Миграции в документации Django чтобы получить информацию о менее распространённых командах для управления миграциями.

Запуск сайта

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

Заметка: Отладочный веб-сервер не настолько функционален и производителен, для постоянного размещения , но это самый простой способ запустить свой сайт на Django и проверить его на наличие ошибок. По умолчанию, он разместит сайт на вашем компьютере (http://127.0.0.1:8000/), но вы так же можете указать различные компьютеры в вашей сети для этой цели. Для получения большего количества информации загляните в раздел django-admin и manage.py: отладочный сервер документации Django.

Запустите веб-сервер, используя команду runserver (в той же папке, что и manage.py):

python3 manage.py runserver

 Performing system checks...

 System check identified no issues (0 silenced).
 September 22, 2016 - 16:11:26
 Django version 1.10, using settings 'locallibrary.settings'
 Starting development server at http://127.0.0.1:8000/
 Quit the server with CTRL-BREAK.

Когда сервер запустится, вы сможете посетить сайт по адресу http://127.0.0.1:8000/ в вашем веб-браузере. Вы должны увидеть страницу с ошибкой, навроде этой:

Не волнуйтесь! Эта страница должна появиться и сообщить нам, что мы ещё не настроили ни одной страницы в модуле catalogs.urls (на который мы были перенаправлены запросили корневой URL сайта). 

Заметка: Показанная выше страница открывает нам одно из замечательных свойств Django — автоматические отчёты об ошибках. На экране с ошибкой отображается множество полезной информации, когда страница не найдена, или ошибка была вызвана кодом. В данном случае, мы видим, что запрошенный URL  не соответствует ни одному шаблону (из указанных). Подобные отчёты будут выключены при DEBUG=False (когда мы разместим приложение в Сеть), в этом случае будет показана менее информативная, но более дружелюбная к пользователю страница(которую вам надо будет создать — прим. переводчика).

На данном этапе, мы поняли, что Django работает должным образом! 

Заметка: Вам следует перезапускать миграцию и заново тестировать сайт, после того как вы делаете важные изменения. Поверьте, это не займёт много времени!

Домашнее задание

Папка catalog/ содержит файлы контроллеров(views), моделей(models), и других частей приложения. Просмотрите эти файлы. 

Как было написано выше, URL соотноситель для админ-панели был подключен в файле urls.py. Войдите в административную часть и посмотрите, что произойдёт (вы можете найти URL из соотношения выше).

Подводя итоги

Теперь вы создали полноценный скелет веб-приложения, который теперь вы можете расширить url соотносителями, контроллерами(views) и моделями(models).

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

Также посмотрите эти статьи

С чего начать изучение Python и Django %

Python – язык программирования, который можно охарактеризовать множеством положительных эпитетов: мощный, красивый, приятный в использовании и т.д. Это универсальный инструмент, который возможно применят где угодно.

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

Изучение Python и Django

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

  • объявляются переменные;
  • создаются и вызываются функции;
  • работает ООП и т.д.

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

Затем обязательно следует познакомиться с философией языка. У Пайтон она сформирована лучше, чем у каких-либо других ЯП. Человек, который узнал и принял философию Python, сможет сразу начать программировать на нем.

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

Почему нужно изучать именно Пайтон

Никто не настаивает на том, чтобы изучать именно этот ЯП. Однако он крайне рекомендуется.

Во-первых, Python очень прост в изучении. Многие люди именно с него начинают свое знакомство с программированием, и впоследствии не переучиваются, а пишут код именно н на нем.

Во-вторых, он функционал. Для Пайтон существует огромное количество модулей. Многие из них входят в стандартную библиотеку, но также есть и множество сторонних либ. А еще Python может интегрироваться с C или C++.

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

Как эффективно изучать язык и фреймворк

Любой ЯП возможно изучить не выходя из дома, сидя за своим компьютером или читая документацию в метро/автобусе по дороге на работу/университет. Но это занимает большое количество времени, так как многие вещи после прочтения остаются непонятыми, и за ответами на возникшие вопросы приходится отправляться на форумы, где не всегда удается найти адекватных разъяснений.

Самый простой способ получить рассматриваемые знания и навыки – это курсы программирования Python. На них материал подается в структурированном виде, а студенты получают поддержку от преподавателей. Более того, по окончанию курсов, выдаются сертификаты, которые свидетельствуют о наличии квалификации, что ценится работодателями.

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

Стоит ли изучать django? — Хабр Q&A

1. Конечно стоит. Python — прекрасный язык, Django — самый востребованный на рынке фреймворк (заметьте, я не говорю «самый лучший», поскольку есть и другие достойные фреймворки в копилке Python и у них есть свои приверженцы, и это, конечно, вопрос личных предпочтений). Одним словом, у вас в руках отличнейший инструмент для получения удовольствия от работы и построения карьеры.
2. Вопрос возраста выкиньте за ненадобностью. В качестве одного из примеров
почитайте-ка историю Алексея Ситникова.
3. Занимайтесь самостоятельно. В ваших реалиях вам необходимо так спланировать свое время, чтобы максимально полезно использовать каждую свободную минуту. Это вопрос, в том числе, самодисциплины, и он «пинками извне» не решается — тут уж ваша личная ответственность перед самим собой.
4. Вам «кровь из носу» нужен английский язык.
5. Не распыляйте усилия. Выберите один-два источника и занимайтесь. Лучше меньше — но лучше.
6. На вкус и цвет, как говорится… На мой взгляд, лучшая книга для качественного старта в Django — книга его основателей. НО! Это если с английским у вас совсем туго. В противном случае, ВОТ ОБНОВЛЕННОЕ издание этой же книги 2016 года. Была в свободном доступе.
7. Совсем не лишним будет изучение (хотя бы на базовом уровне понимания что к чему) front-end инструментов — HTML, CSS, JavaScript.
8. Что еще вам понадобится для устройства на работу.
9. «Конкуренция», «толпы специалистов» и прочие «страшилки» — учитесь, работайте, не останавливайтесь в развитии и все будет ок. Стремитесь стать лучшим в том, что вы делаете. А иначе зачем и для чего?
10. Будет трудно, будут сомнения, будут лень и отчаяние. Ну так и чудес не бывает. Как говорил великий Томас Эдисон: «Гений — это один процент вдохновения и девяносто девять процентов пота».

Но, как это сейчас в тренде: «Вы держитесь, вам всего доброго, хорошего настроения и здоровья!» 🙂

Изучите Django от Master Guide — станьте экспертом по Django!

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

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

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

Изучите Django из Master Guide

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

Приступим.

Изучите темы Django для начинающих

В этом разделе мы ответим на вопрос, почему именно Django? Мы узнаем об истории Django и его особенностях.

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

1. Введение в Django

Это первое вводное руководство по Django . Он предназначен для всех, кому интересно. Узнаем, зачем нужен Django и какие проблемы он решил. В этой статье вы узнаете, как работает Django.

2. Возможности Django

В этом руководстве подробно описаны возможности Django . Вы узнаете о некоторых встроенных функциях, которые сможете использовать. Будут обсуждены такие функции, как администратор Django и авторизация.Вам следует знать ORM Django.

3. Django Плюсы и минусы

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

4. Архитектура Django

В этом руководстве мы объясняем, как работает Интернет. Эта статья просто необходима, если вы ничего не знаете об архитектуре клиент-сервер.Вы познакомитесь со многими фундаментальными концепциями, такими как объекты запрос-ответ, клиент-сервер и т. Д.

Обратитесь к руководству по архитектуре Django и подробно поймете его работу. шаг за шагом и понять процесс установки Django на нескольких машинах. Мы будем устанавливать Django с помощью pip. Узнайте о виртуальных средах Python в этом руководстве.

Практическое занятие: установка Django и настройка виртуальной среды

6.Как создать проект Django

Мы начнем с создания нового проекта Django. В этом процессе мы рассмотрим различные команды, используемые с django-admin. Мы научимся запускать сервер Django в этом руководстве по проекту Django.

Практика: установка проекта в Django

7. Архитектура Django MTV

MTV — это аббревиатура от Model-Template-View, также называемого MVT. Это модификация архитектуры MVC. Мы разберемся с работой моделей, представлений и шаблонов.Это руководство поможет вам понять поток данных в архитектуре Django MTV .

8. Структура проекта Django и файловая структура

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

Ознакомьтесь с полным руководством по макету проекта Django и файловым структурам

9.Установка и развертывание приложения Django

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

Практические занятия: создание, установка и развертывание приложения Django

10. Модели Django

Модели — это структура данных, используемая базой данных. Они обеспечивают интерфейс между базой данных и приложением.Есть разные типы полей. Класс модели Django поставляется с полями, такими как поля электронной почты, URL-адреса и т. Д.

Практично: создание класса модели Django

11. Представления Django

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

Практические занятия: создание представлений Django

Шаблоны Django

Шаблоны обеспечивают уровень представления архитектуры MVT.Django использует язык шаблонов Django или DTL для генерации HTML. Вы узнаете, как Django генерирует HTML-код из тегов DTL. В этом руководстве мы рассмотрим различные теги и фильтры DTL.

Практика: создание шаблонов Django

12. URL-адреса Django и URL-адрес Conf

URL-адреса

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

Практическое занятие: сопоставление шаблонов URL-адресов для просмотра функций

Изучите темы среднего уровня Django

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

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

1. Интерфейс администратора Django

Интерфейс администратора Django — это встроенный интерфейс для управления объектами базы данных.Он имеет собственную модель пользователя и систему разрешений. Пользовательский интерфейс администратора Django удобен для пользователя. Даже те, кто не разбирается в программировании, могут использовать Django admin.

Практическое занятие: настройка сайта администратора Django

2. База данных Django

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

Практика: подключение базы данных MySQL к проекту Django

3. Django Redirect

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

Практика: Реализация перенаправления страниц в Django

4.Обработка файлов cookie в Django

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

Практика: создание файлов cookie в Django

5. Обработка и проверка форм Django

Проверка формы — важная функция, которая может потребоваться в вашем приложении.Создать форму и сделать ее такой же, как и модели, тоже сложно. Здесь появляется Django со своим специальным классом формы. класс формы очень похож на класс модели.

Практическое занятие: создание HTML-форм с классом формы

6. Загрузка файла Django

Django управляет загруженными пользователями файлами, связывая их имена с объектами модели. Django использует для этой задачи настройки MEDIA. Мы научимся настраивать параметры для обслуживания и хранения медиафайлов. Это руководство поможет вам разработать файловую систему в Django.

Практика: загрузка файла в Django

7. Обработка статических файлов в Django

Статические файлы — одно из основных требований любого веб-сайта. Вам нужны CSS, JavaScript, чтобы создавать привлекательные веб-страницы. Обслуживание статических файлов, таких как CSS, JS отличается от обслуживания файлов, загруженных пользователем. Статические файлы меняются чаще, чем пользовательские. В этом уроке научитесь хранить несколько изображений и обслуживать их.

Практическое занятие: управление статическими файлами в Django

8.Django Bootstrap

Bootstrap — очень популярный интерфейсный фреймворк. Он предоставляет различные элементы пользовательского интерфейса для создания привлекательных веб-страниц. В этом руководстве мы изучим реализацию начальной загрузки в Django и интегрируем Bootstrap с нашими шаблонами.

Практика: применение Bootstrap в Django

9. Django CRUD

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

Наше библиотечное приложение будет выполнять операции CRUD с объектами книги.Приложение сможет принимать книги, загруженные пользователями. Пользователь также сможет изменять объекты книги. Все это будет в красивом шаблоне начальной загрузки.

Практическое занятие: проектирование приложения CRUD в Django

Изучение расширенных тем Django

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

1. Django Sessions

Мы научимся разрабатывать пользовательские сеансы с помощью приложения sessions.Мы поймем HTTP и почему это протокол без отслеживания состояния. Мы разработаем приложение, реализующее файлы cookie и сеансы в Django.

Практика: создание сеансов Django и доступ к ним

2. Django Request and Response

Узнайте, как Django интерпретирует запросы от клиента. Изучите различные свойства объектов запросов и ответов. Как объект запроса хранит данные формы? Как мы отправляем файлы cookie вместе с объектом ответа? Получите ответы на эти вопросы в руководстве Django Request Response .

3. Электронная почта Django

В этом руководстве мы узнаем о бэкенде электронной почты в Django . Мы настроим параметры отправки писем. Также мы разработаем приложение для рассылки писем подписчикам.

4. Миграции Django

Django ORM генерирует файлы при миграции в базу данных. Эти файлы в Django называются миграциями. В них хранятся изменения схемы базы данных. Многие разработчики используют миграции для контроля версий схемы базы данных.Узнайте больше о миграциях в этом руководстве.

Практическое занятие: создание и применение миграций в Django

5. Django ORM

Django ORM — это посредник между Django и базой данных. Django ORM отвечает за создание эффективных SQL-запросов. Он преобразует модели Django в команды создания SQL. Мы рассмотрим и сравним ORM, такие как SQL Alchemy, с Django ORM .

6. Кэширование Django

Повышение производительности сайта — это задача внутренних разработчиков.Кеширование реализовано для повышения производительности. Django поддерживает различные типы кеширования. Узнайте о различных методах кэширования в этом руководстве.

Практика: реализация кэширования в Django

7. Настройка администратора Django

Вы можете повысить производительность Django Admin, добавив свои собственные функции. Есть различные функции, которые администратор не включает автоматически. Научитесь реализовывать и использовать эти функции в этом руководстве.

Практика: настройка администратора Django

8.Исключения Django и обработка ошибок

Обработка ошибок отличает хорошего разработчика от плохого. Научитесь поднимать и ловить ошибки в Django . В Django есть собственные классы ошибок для выявления сетевых ошибок. Обработка ошибок важна для повышения надежности вашего приложения.

9. AJAX в Django

AJAX или асинхронный JavaScript и XML — популярная реализация. Мы также изучим основы jQuery и JSON. Мы разработаем приложение Django, в котором пользователи смогут лайкать сообщения.

Практика: реализация AJAX в Django

10. Веб-хостинг Django

Мы разместим наше приложение на веб-сайте pythonanywhere. Любой человек в мире сможет получить доступ к нашему приложению. Научитесь управлять ресурсами для размещения веб-сайта. В этом руководстве мы поймем различные аспекты хостинга веб-сайта.

Практика: Изучите веб-хостинг в Django

11. Django CMS

Разработчики предпочитают Django для систем управления контентом.Управление файлами в Django делает его отличным выбором для CMS. Django CMS была разработана с той же идеей. Сейчас Django CMS является лидером отрасли среди других систем управления контентом. В этом руководстве мы научимся устанавливать и использовать Django CMS.

Практика: установка CMS в Django

12. Django REST Framework

django rest framework - learn django

Django REST Framework позволит Django управлять API. Благодаря DRF вы, наконец, можете связать свои проекты Интернета вещей со своим веб-приложением.Научитесь разрабатывать API и связывать их с несколькими клиентами. DRF позволит вам масштабировать Django на платформах, отличных от Интернета.

Практика: создание REST API в Django

13. Ведение журнала Django

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

Практическое занятие: реализовать логирование в Django

14.Проект Django в приложении News Aggregator

Агрегатор новостей — это сборка, объединяющая поисковые роботы и веб-приложения. Его работа включает в себя поиск статей в Интернете, затем сохранение изображений, ссылок и заголовков изображений, и, наконец, хранимые объекты, присутствующие в базе данных, предоставляются клиенту.

Исходный код: Сборка приложения агрегатора новостей с помощью Django

15. Вопросы для интервью по Django

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

Резюме

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

Всего наилучшего на пути к веб-разработке!

.

Написание вашего первого приложения Django, часть 1 | Документация Django

Давайте учиться на примере.

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

Состоит из двух частей:

  • Общедоступный сайт, который позволяет людям просматривать опросы и голосовать в них.
  • Административный сайт, который позволяет добавлять, изменять и удалять опросы.

Предположим, у вас уже установлен Django. Ты можешь
скажите, что Django установлен и какую версию, выполнив следующую команду
в приглашении оболочки (обозначается префиксом $):

Если установлен Django, вы должны увидеть версию своей установки.Если это
нет, вы получите сообщение «Нет модуля с именем django».

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

См. Как установить Django, чтобы узнать, как удалить
старые версии Django и установите более новую.

Где получить помощь:

Если у вас возникли проблемы с изучением этого руководства, перейдите на
раздел Получение помощи в FAQ.

Создание проекта¶

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

Из командной строки введите cd в каталог, в котором вы хотите сохранить
code, затем выполните следующую команду:

Это создаст каталог mysite в вашем текущем каталоге. Если бы не
работы, см. Проблемы с запуском django-admin.

Примечание

Вам следует избегать именования проектов после встроенного Python или Django.
составные части. В частности, это означает, что вам следует избегать использования таких имен, как
django (который будет конфликтовать с самим Django) или test (который
конфликтует со встроенным пакетом Python).

Где должен находиться этот код?

Если вы используете старый добрый PHP (без использования современных фреймворков),
вы, вероятно, привыкли помещать код в корневой каталог документов веб-сервера
(в таком месте, как / var / www ). С Django этого не сделать. Это
не лучшая идея помещать какой-либо из этого кода Python в ваш веб-сервер
корень документа, потому что это рискует, что люди смогут
чтобы просмотреть свой код в Интернете. Это плохо для безопасности.

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

Давайте посмотрим, что создал startproject :

 мизит /
    manage.py
    мой сайт/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
 

Это файлы:

  • Внешний корневой каталог mysite / является контейнером для вашего проекта. это
    имя не имеет значения для Django; вы можете переименовать его во что угодно.
  • manage.py : Утилита командной строки, которая позволяет вам взаимодействовать с этим
    Проект Django разными способами.Вы можете прочитать все подробности о
    manage.py в django-admin и manage.py.
  • Внутренний каталог mysite / — это фактический пакет Python для вашего
    проект. Его имя — это имя пакета Python, который нужно использовать для импорта.
    что-нибудь внутри него (например, mysite.urls ).
  • mysite / __ init__.py : пустой файл, который сообщает Python, что это
    каталог следует рассматривать как пакет Python. Если вы новичок в Python,
    подробнее о пакетах читайте в официальной документации Python.
  • mysite / settings.py : Настройки / конфигурация для этого Django
    проект. Настройки Django расскажут вам все о том, как настройки
    работай.
  • mysite / urls.py : объявления URL для этого проекта Django; а
    «Оглавление» вашего сайта на Django. Вы можете узнать больше о
    URL-адреса в диспетчере URL-адресов

.

Django — полный стек Python

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

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

Философия включения батарей и расширяемости — это просто две разные
способы решения проблемы построения каркаса. Ни одна из философий по своей сути не лучше
чем другой.

Почему Django — хороший выбор веб-фреймворка?

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

Я настоятельно рекомендую фреймворк Django в качестве отправной точки для новой сети Python.
разработчиков, потому что официальная документация и руководства являются одними из
лучше всего в разработке программного обеспечения. Во многих городах также есть Django-specific
такие группы, как Django District,
Джанго Бостон и
Сан-Франциско Джанго
чтобы новые разработчики могли получить помощь, когда они застряли.

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

Книги и руководства по Django

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

Django видео

Вы ищете видео по Django в дополнение к статьям? Есть специальный
раздел для Django и веб-разработки на
страница лучших видеороликов Python.

Темы Django среднего и продвинутого уровней

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

.

Учебник по Django: веб-сайт местной библиотеки — изучение веб-разработки

Первая статья в нашей серии практических руководств объясняет, что вы узнаете, и предоставляет обзор примера веб-сайта «локальной библиотеки», над которым мы будем работать и развивать в последующих статьях.

Обзор

Добро пожаловать в учебник MDN «Local Library» Django, в котором мы разрабатываем веб-сайт, который можно использовать для управления каталогом локальной библиотеки.

В этой серии обучающих статей вы:

  • Используйте инструменты Django для создания скелета веб-сайта и приложения.
  • Запуск и остановка сервера разработки.
  • Создайте модели для представления данных вашего приложения.
  • Используйте сайт администратора Django, чтобы заполнить данные своего сайта.
  • Создайте представления для получения определенных данных в ответ на различные запросы и шаблоны для отображения данных в виде HTML для отображения в браузере.
  • Создайте сопоставители, чтобы связать различные шаблоны URL-адресов с определенными представлениями.
  • Добавьте авторизацию пользователей и сеансы для управления поведением сайта и доступом.
  • Работа с формами.
  • Напишите тестовый код для вашего приложения.
  • Эффективно используйте безопасность Django.
  • Разверните ваше приложение в рабочей среде.

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

Сайт местной библиотеки

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

Этот пример был тщательно выбран, потому что он может масштабироваться, чтобы показать столько деталей, сколько нам нужно, и может использоваться для демонстрации практически любой функции Django. Что еще более важно, он позволяет нам предоставить управляемый путь через наиболее важные функции веб-фреймворка Django:

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

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

Я застрял, где взять исходник?

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

Если вы застряли, вы можете найти полностью разработанную версию сайта на Github здесь.

Сводка

Теперь, когда вы знаете немного больше о веб-сайте LocalLibrary и о том, что вы собираетесь изучать, пора приступить к созданию скелетного проекта, содержащего наш пример.

В этом модуле

.

Leave a Comment

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