Создание приложения в Django для начинающих (Урок 2) — Часть 2

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

Обязательно прочитайте предыдущую часть, чтобы было понятно, о чем идет речь в этой статье.

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

Все потому, что Django с каждой новой программой создает файл apps.py, куда возможно добавление дополнительных данных. Например, с фреймворка Signals, техника которого считается продвинутой. Для обеспечения полной стабильности нашей простой программы должно, в принципе, хватить и pages. Тем не менее, у нас не будет дополнительных параметров. Следовательно, внутри настроек INSTALLED_APPS рекомендуется использовать полное имя приложения с конфигурацией.

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

URL, представления, модели и шаблоны – что это такое?

Чтобы обеспечить оптимальную работу одной страницы в Django, должно быть по крайней мере три файла. Но в большинстве случаев понадобится четыре файла. Внутри приложения такими файлами являются следующие: urls.py, views.py, models.py, index.html, который является HTML-шаблоном. 

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

Когда мы вводим какой-то URL, например, http://test-page.com, проект Django старается найти URL-паттерн, который бы соответствовал адресу домашней страницы. Он уточняет представление (view), определяющее содержимое страницы. Как правило, оно осуществляется на основе модели базы данных, и в конечном итоге – шаблон (template) для стилей и базовой логики. 

Результат далее отправляется назад пользователю в форме HTTP-ответа.

Схема завершенного потока может быть презентована таким образом:

URL -> View -> Model (обычно) -> Template

Именно так в Django осуществляется цикл запроса и ответа. 

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

Главная идея в том, что представления Django определяют содержимое, которое будет показываться на странице. В то же время URLConfs следит за тем, куда именно такое содержимое направляется.

А модель же включает в себя содержимое базы данных. Зачем нужен шаблон? Для того, чтобы задавать стили.

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

Другими словами, наше представление выведет текст «Hello, World», в то время как url надо будет удостовериться в том, что во время всех посещений пользователя домашней страницы представление, которое отображается, является правильным.

Давайте наглядно продемонстрируем, как все устроено. Для начала необходимо обновить файл views.py в pages

# pages/views.py

from django.http import HttpResponse

 

def homePageView(request):

    return HttpResponse('Hello, World!')

По факту, здесь мы говорим о том, что когда бы функция представления homePageView ни была вызвана, в результате приложение будет отвечать текстом Hello, World. Проще говоря, мы осуществляем импорт встроенного метода HttpResponse, и, следовательно, нами может быть возвращен ответный объект пользователю. 

Нами была создана функция, которая называется homePageView, принимающая объект запроса request, а также возвращает response в форме строки «Hello, World».

Теперь нам следует осуществить настройку всех url. Чтобы это сделать, надо в программе pages создать файл urls.py.

(helloworld) $ touch pages/urls.py

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

# pages/urls.py

from django.urls import path

from .views import homePageView




urlpatterns = [

    path('', homePageView, name='home')

]

С помощью верхней строки мы выполняем импорт path из Django, чтобы сделать наш URL-паттерн более сильным. Далее за ней следует строка, которая осуществляет импорт представлений. Когда мы обращаемся к файлу views.py, как .views, мы обращаемся к Django с просьбой обследовать имеющуюся директорию в поисках файла views.py.

Наш URLpattern имеет три компонента:

  1. Регулярное выражение для пустой строки (то, которое используется в Python в целом).
  2. Отсылка к представлению, которое называется homePageView.
  3. Дополнительный именованный URL-паттерн ‘home’.

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

Сейчас мы уже все разобрали. На последнем этапе необходимо будет обновить файл helloworld_project/urls.py. Для одного Django-проекта, в этом примере будет pages, необходимо иметь сразу несколько приложений, каждое из которых будет иметь собственный адрес. 

# helloworld_project/urls.py

from django.contrib import admin

from django.urls import path, include # новое добавление




urlpatterns = [

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

    path('', include('pages.urls')), # новое добавление

]

На второй строчке возле path нами осуществлен импорт include, после чего был создан дополнительный URL-паттерн для приложения pages. Теперь каждое посещение пользователя домашней страницы сначала будет направляться приложению pages, после чего осуществится к набору представления homePageView, который находится в файле pages/urls.py

Надобность иметь сразу два различных файла urls.py нередко заставляет новичков теряться. Тут helloworld_project/urls.py верхнего уровня рассматривается в качестве шлюза для многообразных  url-паттернов. Они же отличаются в разных программах.

Как создать приложение «Hello World» в Django

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

(helloworld) $ python manage.py runserver

После того, как вы обновите страницу http://127.0.0.1:8000/ в браузере, вы увидите текст «Hello, World» на экране.

Как загрузить код на GitHub?

Для этого необходимо воспользоваться системой управления версиями, которая называется Git. Сначала необходимо осуществить инициализацию (либо добавление) git в хранилище.

(helloworld) $ git init

Теперь, когда вы введете команду git status, увидите перечень изменений с того момента, как был осуществлен последний коммит. Учитывая то, что нынешний коммит является первым, список будет таким. 

(helloworld) $ git status

On branch master

 

No commits yet

 

Untracked files:

  (use "git add <file>..." to include in what will be committed)

 

        Pipfile

        Pipfile.lock

        db.sqlite3

        helloworld_project/

        manage.py

        pages/

 

nothing added to commit but untracked files present (use "git add" to track)

После этого, нам надо воспользоваться командой add — A, чтобы добавить все изменения. А потом воспользоваться командой commit, чтобы их подтвердить (вместе с -m). 

(helloworld) $ git add -A

(helloworld) $ git commit -m "initial commit"

Зачем использовать GitHub?

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

GitHub – это один из самых популярных сервисов для хостинга кода. Каждый из этих сайтов предоставляет бесплатные хранилища.

Как загрузить код 

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

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

Вообще, процедура регистрации проста, и ничем не отличается от подобных процедур на других сайтах.

После того, как мы создадим аккаунт, необходимо перейти на https://github.com/new. Создание приложения в Django для начинающих (Урок 2) - Часть 2

Заполните поля и нажмите кнопку «Create repository». После этого хранилище будет создано. Правда, в нем пока не содержится никаких данных. Нам надо пролистать страницу далее, и там найти пункт «or push an existing repository from the command line» Создание приложения в Django для начинающих (Урок 2) - Часть 2

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

(helloworld) $ git remote add origin

               https://github.com/stillriverpress/hello-world.git

В конечном итоге, нам необходимо загрузить данные на GitHub с использованием команды push.

(helloworld) $ git push -u origin master

ОфисГуру
Adblock
detector