Продолжаем работу с Django 4.0

Если вы прошли первую часть этой серии уроков, вы узнали, как запустить проект Django.

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

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

Проекты в сравнении с приложениями

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

Примечание о проектах и приложениях в экосистеме Django.

Приложения — это компоненты, которые могут использовать конфигурацию проекта.

Приложения отделены от проектов, но при необходимости первые ссылаются на вторые.

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

Django действительно воплощает в себе философию разделения задач.

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

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

pipenv shell

Вы узнаете, что она активирована, если в терминале появится имя директории hello-world-project в круглых скобках.

Убедитесь, что вы находитесь в директории, где виден файл manage.py.

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

python3 manage.py startapp greet

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

Настройка приложения

Если вы еще не сделали этого, cd в каталог greet. Там должен быть список различных файлов Python. Он должен выглядеть так же, как если бы вы заглянули в папку проекта hello_world.

Ниже приведена информация о том, что делает каждый файл.

Файл Описание
apps.py определяет настройки, специфичные для приложения
models.py функциональность базы данных
admin.py определяет интерфейс администратора, связанный с приложением
urls.py обеспечивает маршрутизацию url
views.py логика и поток управления для обработки запросов
test.py используется для написания модульных тестов
папка migrations Django использует ее для миграции баз данных

Как видите, Django идеально подходит для реализации веб-сайтов, использующих архитектуру MVC (Model View Controller).

Чтобы настроить приветственное приложение, вы начнете с определения представлений для проекта.

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

Что такое представление? Ну, в основном, это обработка HTTP-запросов и ответов.

В Django эта функциональность возложена на файл views.py. Откройте этот файл в вашем любимом текстовом редакторе (я использую Vim, потому что в нем я чувствую себя ниндзя) и введите следующее:

from django.shortcuts import render
from django.views.generic import TemplateView

# Create your views here.

class HomePageView(TemplateView):

   template_name = "home.html"


Войти в полноэкранный режим Выйти из полноэкранного режима

Вот краткое резюме того, что вы написали.

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

Далее, вы инстанцировали класс TemplateView, как класс HomePageView, и задали имя шаблона «home.html».

Шаблон home.html еще не создан.

Урлы

Следующий шаг для правильной настройки вашего приложения greet — это создание шаблона url, который понадобится проекту hello_world для использования файла home.html, который вы создадите в следующих нескольких шагах.

Для этого вам придется вручную создать файл urls.py. Для этого вы можете выполнить следующую команду в терминале:

touch urls.py

Это создаст пустой файл Python под названием urls.py. Теперь откройте этот файл и введите следующее:

from django.urls import path

from .views import HomePageView



urlpatterns = [

    path('', HomePageView.as_view(), name="home"),

        ]
Войти в полноэкранный режим Выйти из полноэкранного режима

Здесь необходимо отметить несколько моментов

  • первый аргумент — это шаблон regex, который будет использоваться для ссылки на эту страницу
  • второй аргумент — это наш вид, основанный на классе, созданный в файле views.py
  • третий аргумент необязателен, и мы даем ему сокращенное имя home, чтобы мы могли легко ссылаться на него при использовании шаблонов Django.

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

Конфигурирование проекта

Конфигурирование проекта Django может быть запутанным. Все меняется. Я помню, как несколько лет назад вам нужно было использовать модуль Python os в Django, чтобы найти каталог шаблонов.

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

Проект urls.py

Чтобы начать настройку проекта hello_world, создайте шлюз к недавно созданному файлу urls.py в приложении greet.

Перейдите в папку вашего проекта hello_world и откройте файл urls.py в вашем любимом текстовом редакторе (опять же, я использую Vim, потому что в нем я чувствую себя прекрасно).

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

from django.contrib import admin

from django.urls import path, include



urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('greet.urls'))

]
Войти в полноэкранный режим Выйти из полноэкранного режима

Здесь есть несколько моментов, на которые следует обратить внимание:

  • первый аргумент использует regex (регулярные выражения) для поиска URL-адреса
  • метод include позволяет подключить и использовать ваш urls.py в вашем приложении story.
  • greet.urls в основном выглядит так: greet (папка) -> urls.py (файл)

Понимание того, как проект связан с вашим приложением, очень важно. Если вам нужно вернуться назад, сделайте это; впоследствии у вас будет меньше мигрени.

Settings.py

Это ядро вашего проекта Django. Здесь все должно быть объявлено.

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

Что вы собираетесь делать здесь?

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

И, наконец, вы настроите путь к папке шаблонов, которую вы создадите позже.

Начните с добавления следующей строки, greet.apps.GreetConfig в разделе INSTALLED_APPS.

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',



    'greet.apps.GreetConfig',

]
Вход в полноэкранный режим Выйти из полноэкранного режима

Что это такое? Это вызов файла в папке вашего приложения greet под названием apps.py. В этом файле вы увидите класс GreetConfig, который инстанцирует AppConfig из django.apps.

Далее, в разделе TEMPLATES, установите путь к директории шаблонов в разделе 'DIRS'.

TEMPLATES = [

    {   

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        'DIRS': [BASE_DIR / 'templates'],

        'APP_DIRS': True,

        'OPTIONS': {

            'context_processors': [

                'django.template.context_processors.debug',

                'django.template.context_processors.request',               

                'django.contrib.auth.context_processors.auth',              

                'django.contrib.messages.context_processors.messages',  

            ],

        },

    },

]
Вход в полноэкранный режим Выход из полноэкранного режима

Вы почти закончили!

Что вы только что написали? BASE_DIR / 'templates'.

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

Шаблоны

В папке templates будут храниться ваши HTML-файлы.

Чтобы правильно создать эту папку, убедитесь, что вы находитесь на уровне директории, где виден файл manage.py. Затем введите в терминале следующее:

mkdir templates 
touch templates/home.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем перейдите в папку templates и откройте файл home.html в вашем любимом текстовом редакторе (я использую Vim, потому что он помогает мне чувствовать себя продуктивным).

Введите следующий текст в файл home.html.

<p>Hello, world!</p>
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Привет, мир!

Вы прошли этот путь. Похлопайте себе по спине.

Прежде чем вывести на экран вашего браузера слова «Hello, world!», нужно кое-что сделать.

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

Убедитесь, что вы находитесь на уровне каталога, в котором находится файл manage.py, и выполните в терминале следующее.

`python3 manage.py migrate

Затем введите следующее:

python3 manage.py makemigrations

Ваш терминал должен сказать, что изменений не обнаружено.

И, наконец, введите в терминале следующее:

python3 manage.py runserver

Перейдите на ваш локальный сервер по адресу http://127.0.0.1:8000.

Felicitaciones! Поздравляем!

Ваш браузер должен сказать «Hello, world!».

Заключение

Вы прошли через различные шаги по настройке приложения Django и проекта Django. Вы также создали папку templates и html-файл для создания слов «Hello, world!» на вашем локальном сервере.

Что дальше?

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

Вы также можете прочитать больше о Django на их сайте.

Почему бы не почитать блог Уильяма Винсента? Он более углубленно изучает Django и является авторитетом в сообществе.

Одним из моих любимых занятий является проверка последних проектов Awesome Django

Оцените статью
Procodings.ru
Добавить комментарий