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

—

от автора

Приветствую сообщество, встала передо мной задача написать социальную сеть. А коль скоро язык программирования, которым я более-менее владею — это Python, я выбрал фреймворк Django для реализации проекта. Чтобы не тратить время на написание HTML шаблонов и CSS стилей, эти файлы я беру в интернете с пометкой Free. В основном это шаблоны от Colorlib.

Поехали.

Сразу оговорюсь, что использую PyCharm, поэтому могу не знать все команды из файла manage.py.

После создания проекта в среде, как и в любом Django проекте, первое, что необходимо сделать — внести изменения в файле settings.py а именно:

  1. Меняем две переменные на
    LANGUAGE_CODE = 'ru-ru' TIME_ZONE = 'Ваш часовой пояс/Ваш город' #Например: Europe/Moscow 
  2. Добавить папку для статических и медиа файлов
    # Static files STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # Media files MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

Далее создаём своё приложение командой

python manage.py startapp my_app

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

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

INSTALLED_APPS = [     'django.contrib.admin',     ...     'django.contrib.staticfiles',     'my_app',#наше приложение ]


Далее необходимо определить url адрес для нашего приложения, что тоже является хорошим тоном разработки. В папке приложения (не путать с папкой проекта) нужно предварительно создать файл urls.py. А затем в папке проекта в файле urls.py импортируем функцию include и прописываем адрес. Об этом также написано в комментариях в самом файле.

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

Если на этом этапе мы запустим сервер командой

python manage.py runserver

в командной строке (в PyCharm кнопка «Запуск» или «Debug»), то получим ошибку, ведь в папке приложения файл urls.py (далее — account/urls.py) пустой.

Заполним его следующим кодом.

from django.urls import path from . import views  urlpatterns = [     path('', views.index, name='login'),# при обращении к адресу ''(главная страница), будем использовать представление (термин Django) log ]

Теперь выйдет ошибка, потому что account/views.py пустой. Исправим.

from django.shortcuts import render #импорт функции # Create your views here. def index(request):#создаем свою функцию     context = {}#с помощью словаря можем передать модель и форму в шаблон HTML     return render(request, 'my_app/index.html', context)#собственно вызываем шаблон HTML


Почти готово. Что уже сделано:

  1. Создано приложение в проекте.
  2. Внесены изменения в настройках.
  3. Прописан адрес в главном urls.py проекта.
  4. В приложении создан файл urls.py и в нем прописано представление (views).
  5. В представлении (views) создана функция обработки url адреса и HTML шаблона.

Пора создать шаблон.

При создании проекта у нас автоматически создаётся папка ‘templates’, в ней нужно создать папку my_app, внутри my_app создать файл index.html. Для проверки в теге body можно записать:

<!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <title>Заголовок</title> </head> <body>     <h2>Сайт работает.</h2>  </body> </html>

и можно запускать сервер.

В итоге мы должны увидеть вот это (изображение):

image

Если на сайте используются какие-либо CSS стили или JavaScript файлы, а это 10 из 10 случаев, то нужно их подгрузить перед строкой DOCTYPE командой

{%load staticfiles%}

При этом в папке приложения создать папку «static», внутри держать CSS, JS и тд. А в HTML шаблоне в теге link параметре href указать абсолютный путь к файлу, например:

<link href="{% static 'css/style.css' %}" rel="stylesheet">

Итого, файл будет выглядеть вот так:

 {%load staticfiles%} <!DOCTYPE html> <html lang="ru"> <head>     <meta charset="UTF-8">     <title>Заголовок</title>     <link href="{% static 'css/style.css' %}" rel="stylesheet"> </head> <body>     <h2>Сайт работает.</h2>  </body> </html>

В общем-то нам этом введение и заканчивается. Дальше все действия будут похожи, только суть будет разной. Будут разные формы (тег form в HTML) в файле forms.py приложения (нужно предварительно создать этот файл), будет разная логика приложений, описанная в views.py, ну и модели в базе данных, описанные в models.py. Но сам алгоритм действий тот же самый

  1. Создаём адрес.
  2. Создаём представление (логику).
  3. Создаём HTML шаблон.
  4. Связываем всё вместе.

+ — пара промежуточных действий в виде форм и моделей.

В блоге Metanit (ссылка внизу) хорошо описана суть Модель — Шаблон — Представление, копипастить не собираюсь, там же есть теория и про формы, и про модели.

В «Руководство Django Girls» (ссылка внизу) можно узнать подробней о расширении шаблонов HTML (крайне полезная фишка Django), о создании учётной записи администратора, о добавлении данных в созданные модели.

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

Ссылки на полезные ресурсы:
Блог про Django — Metanit
Руководство Django Girls
Django в примерах


ссылка на оригинал статьи https://habr.com/ru/post/463021/


Комментарии

Добавить комментарий

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