Найти в Дзене
Я познаю Питон

Что там по веб-приложению? Django: первый шаг.

Оглавление

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

Ноутбук с CSS-кодом
Ноутбук с CSS-кодом

Теория

Нельзя начать решать задачу, если совершенно не знаешь как. Поэтому сначала изучаем теорию. Я повторял проект из видеоурока и использовал сайт metanit.com. При этом сайт у меня был в роли справочника.

Повторив проект я получил готовый код на своем ПК, и в голове сформировался принцип работы Django и общая его структура. Но как с ним работать я не понимал. Ведь пока не попробуешь кодить своими ручками, ничего не получиться. Что же делать? С чего начать? Обычно в учебниках подобраны задачи, которые направят тебя в дальнейшем обучении, тут же пришлось придумывать самому.

Задача

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

Реализуйте сайт с тремя страницами: главная, о сайте, об авторе. На главной должен быть заголовок "Главная страница" и две ссылки на другие две страницы. На остальных страницах свой заголовок и ссылка на главную страницу.

Пример моей главной страницы.
Пример моей главной страницы.

Решение

Для решения достаточно ресурсов, которые я обозначил в разделе теория. Я сначала повторил проект из видеоурока, потом по полученным файлам делал свой. Опишу порядок первых своих действий:

Создаем папку для проекта, заходим в неё через терминал. Оттуда команды:

  • django-admin startproject testProject
  • cd testProject
  • python manage.py startapp testApp

Мы создали проект testProject , перешли в него и там создали приложение testApp.

Далее начинаем работать с получившимися файлами в папке testProject. Делать это средствами винды не очень хорошая идея, поэтому лучше использовать специализированный редактор (у меня это Atom).

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

apps находится в папке проекта, на уровень выше файла manage.py
apps находится в папке проекта, на уровень выше файла manage.py

Для того, чтобы проект видел новую для себя папку, надо указать путь к ней. Сделать это нужно в файле settings.py. Для указания пути добавляем к библиотеке os - sys. А дальше указываем путь к apps.

  • import os, sys
  • PROJECT_ROOT = os.path.dirname(__file__)
  • sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))

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

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

P.S. Я просто рассказываю о том, как учу Питон я. Мой способ точно не универсален и точно не лучший. Вы сами для себя решаете как вам удобнее, как вы лучше понимаете и продвигаетесь вперед. И если вы вдруг опытный Джангист, то поделитесь своим опытом в комментариях.

Удачи всем нам в наших начинаниях!=)