Пошаговое руководство по установке Django, запуску сервера разработки и загрузке нашего первого шаблона.

Что такое Джанго?

«Веб-фреймворк для перфекционистов с указанием сроков».

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

Зачем использовать Django? Почему не Flask?

Лично у меня нет большого опыта работы с Flask, но из того, что я прочитал, кажется, что Flask легче понять, когда вы начнете. Установка Django занимает больше времени и требует дополнительных знаний программирования, чтобы в полной мере использовать их MVT, шаблон представления модели, шаблон проектирования программного обеспечения. Однако обучение использованию Django принесет вам только пользу в будущем. Если вы хотите стать веб-разработчиком на Python, Django просто необходим. Еще не убедили вас? Некоторые из этих популярных веб-сайтов, такие как:

  • Pinterest
  • Instagram
  • Spotify
  • YouTube
  • Eventbrite
  • Dropbox

ВСЕ построены на Django. Этот фреймворк чрезвычайно эффективен и пользуется большим спросом как навык.

Создание вашего первого проекта Django

Давайте узнаем, как создать наш собственный проект Django, и мы сделаем небольшое приложение. При запуске нового проекта Django нам необходимо создать виртуальную среду на Python и установить там django. Сначала меня это очень сбивало с толку, зачем мне создавать еще один экземпляр Python и его файлы где-то еще? Однако причина, по которой мы это делаем, заключается в том, что у нас есть другой проект, который использует другие версии зависимостей. Наша виртуальная среда гарантирует, что у нас есть все необходимое для этого конкретного проекта в одном месте, и это не повлияет на другие проекты. Чтобы создать виртуальную среду в Windows, сначала откройте командную строку в каталоге проекта (создайте ее где-нибудь, если у вас еще нет) и введите следующую команду:

virtualenv "virtual_environment_name"

Вы должны ввести «virtual_environment_name», которое считаете нужным. Это создаст каталог с именем «virtual_environment_name», который содержит стандартные библиотеки Python. Для этого проекта Django я назову свою виртуальную среду проектами. Чтобы активировать эту виртуальную среду, введите это в командной строке:

projects/Scripts/activate

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

(project) \path\to\project

Это нормально и означает, что вы успешно активировали свою виртуальную среду! Затем вам нужно установить Django с помощью pip:

pip install django

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

django-admin startproject "project_name"

Это должно создать другой каталог в папке вашего проекта с именем «имя_проекта». В этой серии я назову свой проект todo_project. Это должен быть созданный каталог:

todo_project/
    manage.py
    todo_project/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Давайте еще раз проверим, все ли работает правильно, и для этого запустим сервер разработки Django. Измените каталог в свой проект django и введите эту команду в командной строке:

python manage.py runserver

В случае успеха он должен отобразить это в командной строке:

Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 03, 2019 - 22:20:55
Django version 2.2.6, using settings 'todo_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Сервер расположен по адресу localhost: 8000, и вам просто нужно ввести это в любой веб-браузер, я буду использовать Chrome, и вы должны увидеть этот гиф.

Поздравляю! Вы успешно скачали Django, запустили сервер разработки, и мы готовы приступить к созданию нашего приложения. Каждый раз, когда вы запускаете этот проект, вам нужно будет вводить python manage.py runserver в командной строке для просмотра приложений.

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

Проект Django (todo_project) - относится ко всему приложению и его частям. В настоящее время мы ТОЛЬКО создали каталог под названием todo_project. В Django замечательно то, что этот проект может содержать несколько приложений. Вы можете создать блог, целевую страницу, корзину, и все они будут рассматриваться как приложения в одном проекте django. Вам просто нужно указать django, где указать эти разные приложения.

Приложение Django - это подмодуль проекта. Приложение - это веб-приложение, которое что-то делает.

Проект Django может содержать несколько приложений. Приложение может быть в нескольких проектах. Если я не объяснил это хорошо, посмотрите документацию Django, где они объясняют это НАМНОГО лучше. Мы будем называть проект django todo_project, а любое приложение - «name» _app для простоты.

Создание нашего приложения Django

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

python manage.py startapp "app_name"

Нашим «app_name» будет todo_app, поэтому вам будет легко следовать между проектом django и приложением django. Эта команда создаст каталог, который будет выглядеть следующим образом:

todo_app/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

Это все файлы, которые позволят нашему приложению работать. Осталась только одна небольшая проблема: наш проект django еще не знает, что наше приложение существует! Нам нужно сказать нашему проекту django: «Привет, у нас есть это приложение, я хочу добавить», а затем сообщить нашему проекту, как указать на наше приложение. Чтобы добавить наше приложение, нам нужно перейти к файлу urls.py в нашем каталоге проекта django. В этом случае наш проект django - todo_project, поэтому каталог будет:

todo_project / todo_project / urls.py

Как только вы найдете его, откройте файл, и вам нужно сделать три вещи:

  1. импортировать модуль include из django.urls import include, путь к нашему файлу urls.py
  2. добавить приложение в шаблоны URL
  3. откройте settings.py в том же каталоге и добавьте наше приложение в INSTALLED_APPS

Это сообщит нашему проекту, где находится приложение. Каждый раз, когда вам нужно добавить новое приложение в свой проект django, обязательно добавьте его в список шаблонов URL! Окончательный файл urls.py должен выглядеть:

from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('todo_app',include('todo_app.urls')),
path('admin/', admin.site.urls),
]

Затем перейдите в файл settings.py и добавьте свое приложение в INSTALLED_APPS:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todo_app',
]

Функция path () и добавление ее в INSTALLED_APPS сообщает нашему проекту:

«Привет, у нас есть приложение под названием todo_app, и я должен добавить его в наш проект, и я хочу, чтобы вы включили в проект все URL-адреса, связанные с этим приложением».

Создание нашего первого представления и шаблона

Чтобы добавить наше первое представление, нам нужно создать файл urls.py в нашем приложении django, todo_app. Перейдите в каталог своего приложения, в нашем случае todo_app, и вы увидите следующие файлы:

Создайте здесь файл urls.py и добавьте следующий код:

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index'),
]

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

Отлично, теперь, когда у нас есть URL-адрес, нам нужно создать представление, которое сообщает django, что загружать, когда кто-то переходит на этот URL-адрес. Откройте файл views.py, который находится в вашем приложении django, и давайте создадим функцию под названием index, которая будет загружать некоторый шаблон при вызове views.index:

from django.shortcuts import render

def index(request):
    return render(request,'todo_app/index.html')

Каждая функция представления принимает аргумент запроса, потому что к этому представлению делается запрос. Затем эта функция index будет отображать шаблон index.html.

Благодаря этой функциональности django так популярен. Есть специальное место, куда django отправляется в поисках чего-то, что называется «статическими файлами», то есть такими файлами, как CSS, JS, изображения, шаблоны HTML. Сначала нам нужно создать этот каталог, и вы сделаете это в папке приложения django. Создайте папку с именем «шаблоны», а внутри этой папки создайте другую папку с именем «todo_app» (или название вашего приложения), и вы будете хранить свои статические файлы в этой папке. Создайте файл HTML, и по сути он должен выглядеть так:

templates
    todo_app
        index.html
        *other static files*

Давайте снова запустим наш сервер разработки и посмотрим, как это будет выглядеть. Не забудьте запустить виртуальную среду и запустить сервер с кодом python manage.py runserver в каталоге проекта. Затем перейдите на localhost: 8000 / todo_app, и теперь, когда вы загружаете страницу, вы должны увидеть содержимое вашего index.html!

Далее: Создание моделей и шаблонов

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

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