Django для чайников

Обзор

Эта статья показывает, как можно создать «скелет»(прототип) сайта, который затем можно расширить при помощи различных настроек, url адресов, моделей, представлений, и шаблонов (эти темы будут объясняться в последующих статьях).

Алгоритм следующий:

  1. Использовать django-admin для создания папки проекта, шаблонов остальных файлов, и скрипта для управления проектом (manage.py).
  2. Использовать manage.py для создания одного или нескольких приложений.

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

  3. Зарегистрировать в настройках эти приложения, чтобы использовать их в проекте.
  4. Настроить маршруты url адресов для каждого из приложений.

Для Сайта местной библиотеки папка сайта и проекта будет называться locallibrary, и у нас будет одно приложение с названием catalog. Верхняя структура проекта будет следующей:

locallibrary/ # Папка сайта manage.py # Скрипт для управления проектов (создан manage.py) locallibrary/ # Папка сайта/проекта (создана manage.py) catalog/ # Папка приложения (также создана manage.py)

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

Создание проекта

Для начала откройте командную строку/терминал, перейдите в ту папке, куда вы хотите поместить приложения Django(лучше создайте её так, чтобы её было легко найти, например в папке документы), и создайте папку для вашего нового сайта (в данном случае: locallibrary). Затем войдите в эту папку, используя команду cd:

mkdir locallibrary cd locallibrary

Создайте новую папку, используя команду django-admin startproject как в примере ниже, и затем зайдите в созданную папку.

django-admin startproject locallibrary . cd locallibrary

Команда django-admin создаст файловую структуру, как в примере ниже:

locallibrary/ manage.py locallibrary/ settings.py urls.py wsgi.py

Подпапка проекта locallibrary это ключевая директория нашего проекта:

  • settings.py содержит в себе все настройки проекта. Здесь мы регистрируем приложения, задаём размещение статичных файлов, настройки базы данных и так далее.
  • urls.py задаёт ассоциации url адресов с представлениями. Несмотря на то, что этот файл может содержать все настройки url, обычно его делят на части, по одной на приложение, как будет показано далее.
  • wsgi.py используется для налаживания связи между вашим Django приложением и веб-сервером. Вы можете воспринимать его, как утилиту.

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

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

Выполнив предыдущие шаги, запустите следующую команду для создания каталога приложения, который будет размещён внутри папки locallibrary (команду необходимо выполнять из папки, в которой находится manage.py):

python3 manage.py startapp catalog

Заметка: приведённая выше команда справедлива для GNU Linux/Mac OS. На Windows команда должна иметь вид: py -3 manage.py startapp catalog

Если вы работаете под Windows, заменяйте команду python3 на py -3 в этой и следующих статьях.

Эта команда создаст новую папку и наполнит её файлами различных частей приложения (выделенные полужирным ниже). Большинство файлов названы, исходя из их назначения (например контроллеры(views) должны находится во views.py, модели в models.py, тесты в tests.py, настройки административной части в admin.py, регистрация приложения в apps.py) и уже содержат некоторый шаблонный код для работы с вышеназванными объектами.

Обновлённая директория должна выглядеть следующим образом:

locallibrary/ manage.py locallibrary/ catalog/ admin.py apps.py models.py tests.py views.py __init__.py migrations/

Кроме перечисленных выше файлов были созданы:

  • Папка migrations используется, чтобы хранить»миграции» — файлы, которые позволяют вам автоматически обновлять базу данных по мере изменения моделей.
  • __init__.py — пустой файл для того, чтобы Django и Python распознавали папку как Python модуль и позволяет нам использовать его объекты внутри других частей проекта.

Заметка: Заметили, что некоторых файлов не хватает? В то время, как там нашли себе место файлы для контроллеров(views) и моделей(models), файлов для настройки url соотносителя, шаблонов, и статичных файлов создано не было. Далее мы покажем, как их создать (они не обязательны для каждого сайта, но нужны в данном примере).

Другие настройки проекта

Файл settings.py так же применяется и для некоторых других настроек, но на данном шаге имеет смысл поменять разве что TIME_ZONE — это значение должно быть представлено строкой, указанной в списке часовых поясов tz (колонка TZ в таблице, в строке временной зоны, которая вам нужна). Измените TIME_ZONE на одну из строк из таблицы, которая отвечает вашему часовому поясу. Например:

TIME_ZONE = ‘Europe/Moscow’

В файле присутствует две настройки, которые не нужно менять сейчас, но о назначении которых следует знать:

  • SECRET_KEY. Это секретный ключ, который используется Django для поддержки безопасности сайта. Если вы раскроете этот ключ в процессе разработки кому-либо, то необходимо будет его сменить (возможно считать его с какого-либо файла на сервере или переменной окружения) когда будете размещать проект на сервер.
  • DEBUG. Включает подробные сообщения об ошибках, вместо стандартных HTTP статусов ответов. Должно быть изменено на False на сервере, так как эта информация очень много расскажет взломщикам.

Подключение URL-адреса

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

Откройте locallibrary/locallibrary/urls.py и обратите внимание на закомментированный текст, который объясняет суть происходящего.

«»» locallibrary URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.10/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r’^$’, views.home, name=’home’) Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r’^$’, Home.as_view(), name=’home’) Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r’^blog/’, include(‘blog.urls’)) «»» from django.urls import path from django.contrib import admin urlpatterns =

URL соотношения хранятся в переменной urlpatterns, которая является списком функций path(). Каждая path() функция или ассоциирует шаблон URL с контроллером(views) или же его с другим таким списком (во втором случае, первый URL становится «базовым» для других, которые определяются в дочернем списке). Список urlpatterns инициализирует список функции, которая, например, соотносит admin/ с модулем admin.site.urls , который содержит собственный файл-соотноситель.

Добавьте строчки, приведённые ниже в низ файла urls.py , чтобы добавить новый элемент в список urlpatterns. Этот элемент содержит url() который направляет запросы с URL catalog/ к модулю catalog.urls (файл с относительным путём /catalog/urls.py).

# Используйте include() чтобы добавлять URL из каталога приложения from django.urls import include from django.urls import path urlpatterns +=

Теперь давайте перенаправим корневой URL нашего сайта (например 127.0.0.1:8000) на URL 127.0.0.1:8000/catalog/; это единственное приложение, которое мы собираемся использовать, поэтому это вполне разумно. Чтобы это использовать, нам понадобится специальная функция (RedirectView), которая принимает первым параметром новый относительный URL на который следует перенаправлять (/catalog/) когда указанный в функции url() адрес соотносится с адресом запроса (корневой URL, в данном случае).

Добавьте следующие строчки, тоже в конец файла:

# Добавьте URL соотношения, чтобы перенаправить запросы с корневового URL, на URL приложения from django.views.generic import RedirectView urlpatterns +=

Django не размещает статические файлы(CSS, JavaScript, и изображения) по умолчанию, но это было бы крайне полезно на этапе разработки нашего сайта. В самом конце нашего URL соотносителя, можно включить размещение статических файлов.

Добавьте последнюю часть в конец файла:

# Используйте static() чтобы добавить соотношения для статических файлов # Только на период разработки from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Заметка: Существуют различные способы дополнения списка urlpatterns (в примере мы просто добавляли объект, испольщуя оператор += чтобы чётко разделить изначальный и дописанный код). Вместо этого, мы могли бы добавить соотношения внутрь определения переменной:

urlpatterns = + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Кроме того, мы добавили import вниз файла (from django.urls import include) ,чтобы видеть, что мы добавили, но обычно все import’ы добавляются в верхнюю часть файла.

Напоследок, создайте файл urls.py внутри папки catalog, и добавьте следующий код, чтобы определить (пустой) urlpatterns. Сюда мы будем добавлять наши URL соотношения, по мере разработки сайта.

from django.urls import path from . import views urlpatterns =

Тестирование работы скелета

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

До этого, нам предстоит впервые запустить миграцию базы данных. Это обновит нашу базу данных и добавит туда необходимые модели (и уберёт некоторые предупреждения, которые были бы показаны при попытке запуска).

Запуск миграций базы данных

Django использует Объектный Соотноситель Связей (ORM) чтобы соотносить определения моделей в Django приложении со структурами данных, которые используются базой данных. Когда мы меняем наши модели, Django отслеживает изменения и может создать файлы миграций (в папке /locallibrary/catalog/migrations/) чтобы применить соответствующие структуры данных к базе, чтобы та соответствовала модели.

При создании сайта, Django автоматически добавил несколько моделей, чтобы мы могли их использовать в админ-панели (о которой мы поговорим позже). Выполните следующие команды, чтобы создать нужные таблицы в базе данных, соответствующие этим моделям (убедитесь, что вы находитесь в папке с manage.py):

python3 manage.py makemigrations python3 manage.py migrate

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

Команда makemigrations создаёт (но не применяет) миграции для всех приложений, которые установлены в ваш проект (вы так же можете указать в конце имя конкретного приложения, чтобы создать миграции только для него). Это даёт вам возможность проверить код перед тем, как их применить — когда вы станете хорошо разбираться в Django, то сможете даже менять их!

Команда migrate применяет созданные миграции к базе (Django отслеживает, какие миграции были созданы для данной базы).

Заметка: Посмотрите раздел Миграции в документации Django чтобы получить информацию о менее распространённых командах для управления миграциями.

Запуск сайта

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

Заметка: Отладочный веб-сервер не настолько функционален и производителен, для постоянного размещения , но это самый простой способ запустить свой сайт на Django и проверить его на наличие ошибок. По умолчанию, он разместит сайт на вашем компьютере (http://127.0.0.1:8000/), но вы так же можете указать различные компьютеры в вашей сети для этой цели. Для получения большего количества информации загляните в раздел django-admin и manage.py: отладочный сервер документации Django.

Запустите веб-сервер, используя команду runserver (в той же папке, что и manage.py):

python3 manage.py runserver Performing system checks… System check identified no issues (0 silenced). September 22, 2016 — 16:11:26 Django version 1.10, using settings ‘locallibrary.settings’ Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.

Когда сервер запустится, вы сможете посетить сайт по адресу http://127.0.0.1:8000/ в вашем веб-браузере. Вы должны увидеть страницу с ошибкой, навроде этой:

Не волнуйтесь! Эта страница должна появиться и сообщить нам, что мы ещё не настроили ни одной страницы в модуле catalogs.urls (на который мы были перенаправлены запросили корневой URL сайта).

Заметка: Показанная выше страница открывает нам одно из замечательных свойств Django — автоматические отчёты об ошибках. На экране с ошибкой отображается множество полезной информации, когда страница не найдена, или ошибка была вызвана кодом. В данном случае, мы видим, что запрошенный URL не соответствует ни одному шаблону (из указанных). Подобные отчёты будут выключены при DEBUG=False (когда мы разместим приложение в Сеть), в этом случае будет показана менее информативная, но более дружелюбная к пользователю страница(которую вам надо будет создать — прим. переводчика).

На данном этапе, мы поняли, что Django работает должным образом!

Заметка: Вам следует перезапускать миграцию и заново тестировать сайт, после того как вы делаете важные изменения. Поверьте, это не займёт много времени!

8 обучалок Django

Django является одним из самых популярных фреймворков для языка Python. Он использовался при разработке таких ресурсов, как Instagram, YouTube, Google, Mozilla и многих других. Django поддерживает массу инструментов и шаблонов для быстрого и эффективного создания современного веба любой сложности.

Если вы решили связать свою жизнь с Python, то знакомство с Django — неизбежная ступень вашего развития. Вот 8 ресурсов, которые помогут вам познакомиться с этим фреймворком поближе.

Курс GeekBrains

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

К счастью, здесь на портале GeekBrains такой курс имеется. К началу занятий лучше подтянуть свои знания по JavaScript, Ajax и Python, чтобы не тратить на это время по ходу занятий. Придется выполнять очень много практической работы, но зато на выходе вы уже получите реальный набор навыков и готовый проект для своего портфолио.

Tango With Django

Очень увлекательный учебник для изучения Python через Django. Информация подается очень доступно для новичков, присутствуют картинки, иллюстрации и даже немного юмора. Кроме того, в процессе чтения вы познакомьтесь с другими языками веба, системой контроля версий Git и общими принципами работы сетей. Первые 2 части находятся в свободном доступе, а самая свежая версия — только за деньги. И да, обязательно подтяните английский язык.

Writing your first Django app

Официальное руководство в 7 частях по созданию вашего первого мобильного приложения с использованием Django. Рассчитано на тех, у кого есть хотя бы небольшой опыт работы с Python. Информация подается достаточно сухо, но зато в пошаговом формате и при этом подробно. По окончанию курса, вернитесь к разделу “Tutorials” и увидите еще пару полезных разделов. Один из них посвящен масштабированию приложений, другой — список рекомендуемой литературы для дальнейшего развития.

Django Girls Tutorial

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

Django Weekly

Ресурс с еженедельными рассылками по Django. Здесь можно найти информацию всем — и новичкам, делающим первые шаги, и тем кому надо глубже продвинуться в каком-то конкретном направлении, и тем профи, кто просто с удовольствием прочитает новую информацию про используемый продукт.

Ultimate Django

Руководство, начинающееся с очень привлекательных слов о зарплате Django -специалистов в США. Не смущайтесь, в остальном, это достаточно качественная онлайн книга, содержащая не только step-by-step уроки по созданию своего первого приложения, но и дальнейшее развитие в виде создания функционала и деплоя.

TaskBuster Django Tutorial

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

Django на русском

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

Как создать сайт на django

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

Django:

MVC – Model чтото делает (в ней содержится основная логика), она передаёт это контроллеру Controller(связующее звено), и контроллер передаёт это в View (отображает на экран).

Поиск подходящих модулей


*** Прежде в Environment Variables в console panel windows добавляем path: C:Python3.5;C:Python3.5Scripts

** ЗАПУСКАТЬ manage.py можно с PyCarm новой версии: Tools – Run manage.py Task или Cntl+Alt+R

Cоздать проект:


** Если вдруг проект не создаётся, требуется переустановить pip и Django:

Что такое manage.py (посмотреть его возможные функции): C:my_projectProject_1> python manage.py help

или python manage.py runserver 0.0.0.0:8000 —nothreading

Панель администрации:

Как создать приложение:

python manage.py startapp books

ПРИЛОЖЕНИЯ НА DJANGO: https://djangopackages.org/

Подключение административного интерфейса:

python manage.py syncdb (в python 3 -> python manage.py migrate)

Проверить, что в базе данных можно открыв db.sqlite в sql manager.

Вход в админ: http://localhost:8002/admin/

Добавить URL : в project/urls.py

При добавлении метода всегда указываем метод, который ссылка возвращает,

а метод должен всегда возвращать HttpResponse, поэтому всегда грузим

модуль «from django.http import Http404, HttpResponse»

Пример:

from django.conf.urls import url, include

from django.contrib import admin

from django.http import Http404, HttpResponse

def page(request):

return HttpResponse (str(«HELLO»))

urlpatterns =

Вывод страницы: http://localhost:8002/test

**Можно также создавать файл в ручную, например в приложении books:

>ADMIN

Создать админа: python manage.py createsuperuser (создать имя, пароль юзера)

Запуск админа: http://localhost:8002/admin/

MODELS

Для каждой модели создаётся своя таблица в базе данных. Модель создаётся для обьекта.

— Добавления модели: Делается в books –> models.py (наша модель это класс Article)

from django.contrib.auth.models import User

from django.db import models

# Create your models here.

class Article(models.Model):

title = models.CharField(max_length=200)

text = models.TextField()

user = models.ForeignKey(User)

  • Обязательно нужно добавить наше приложение в Project_1 -> settings.py

— И добавить нашу новую модель также в админку: books -> admin.py

from django.contrib import admin

from books.models import Article

# Register your models here.

admin.site.register(Article)

— После добавления новой модели (или класса этой модели) нужно синхронизировать базу данных: python manage.py makemigrations название_приложения(необязательно)

*Может показать где были изменения, а может сказать что не было изменений (тогда значит забыли добавить модель в settings)

— Затем запустим команду migrate , чтобы сделать миграцию всем приложениям: python manage.py migrate

* И в админке должна появиться табличка Articles

— Чтобы отобразить заголовок статьи потребуется добавить метод к нашему классу Article:

*** Для того, чтобы запустить приложение со страницы индекса, нужно прописать URL и задать метод показа в books -> views.py, и также в Project_1 -> url.py указать url ведущий на приложение (когда запускаешь индекс)

— Project_1 -> url.py

from django.conf.urls import url, include

from django.contrib import admin

from django.http import Http404, HttpResponse

def page(request):

return HttpResponse (str(«HELLO»))

urlpatterns =

— books -> url.py

from django.conf.urls import url

from books import views as books_views

urlpatterns =

VIEWS

— books — > view.py (views — темплейт отображения сайта, прописываем тут метод который чтото делает и возвращает нам HttpResponse (встроенный метод django, не забыть импортировать модуль)с содержимым.

from django.shortcuts import render

from django.http import Http404, HttpResponse

# this is for books.views.home (in url), what we see at the page

def home(request):

return HttpResponse(str(«HELLO!!!»))

**VIEWS — занимаются тем, что рендерят данные из базы данных на страницу.(из темлейта)

1. Создадим директорию templates в приложении books: books — new — directory (правой кнопкой мыши)

2. Обозначим нашу папку как шаблон: правой кнопкой мыши — Mark directory as — templates folder

3. Создать еще один каталог в директории templates и назвать его тоже blog (для того, чтобы если не спутать похожие каталоги с тем же именем, лучше создать еще одну папку с названием нашего приложения, то есть получится в итоге books -> templates -> books

4. Далее закоментируем строки с HttpResponse в файле books -> views.py, и вместо них возвращаем render

from django.shortcuts import render

#from django.http import Http404, HttpResponse

# this is for books.views.home (in url), what we see at the page

def home(request):

return render(request, ‘books/home.html’)

#return HttpResponse(str(«HELLO!!!»))

5. Теперь создадим наш файл home.html в директории books -> templates -> books -> home.html

Правой кнопкой мыши -> new -> Html file

Теперь home.html и будет нашим отображаемым html файлом, куда можно писать содержимое, главное указать на него в views.py.

6. Далее можно скачать простенький темплейт с сайта http://getbootstrap.com/examples/starter-template/ например, переписать с viewsource код и заменить все cssjs на скрипты с сайта https://www.bootstrapcdn.com/, чтобы они не шли на прямую с сайта источника getbootstrap.com. Для разных css тем можно выбрать по ссылке https://www.bootstrapcdn.com/bootswatch/ и выбрать подходящий css там, просто скопировать линк на css.

Добавление CSS/JS :

Создать папку static в директории books. В папке static создать папку books и туда добавить css файл:
books — > static -> books -> styles.css (ОБЯЗАТЕЛЬНО ПРОВЕРИТЬ, ЧТО ФАЙЛ СОЗДАЛСЯ В ФОРМАТЕ CSS !!!)

— Далее подключим наши стили к base.html:

1. В начале документа загрузим библиотеку статик файлов: {% load staticfiles %}

2. Добавим наш файл css с помощью кода: {% static ‘books/styles.css’ %} :

Впишем код в линк: <link href=»{% static ‘books/styles.css’ %}» rel=»stylesheet»>

— Далее в setting.py впишем следующие строки (если они уже есть оставить их как есть):

STATIC_URL = ‘/static/’

STATICFILES_DIRS = ()

# List of finder classes that know how to find static files in

# various locations.

STATICFILES_FINDERS = (

‘django.contrib.staticfiles.finders.FileSystemFinder’,

‘django.contrib.staticfiles.finders.AppDirectoriesFinder’,

)

В отображении ссылки на css должно быть следующее: <link href=»/static/books/styles.css» rel=»stylesheet»>

Также набрав http://127.0.0.1:8000/static/books/styles.css , мы сможем увидеть наш css код.

Подробнее о css файлах и статик файлах ( как правильно устанавливать, как на продакшене, как сделать папку со всеми статичными файлами и копировать их) можно прочитать тут: https://djbook.ru/rel1.9/howto/static-files/index.html , и тут: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_FINDERS

Добавление дополнительных страниц

Это сделать очень просто. Например мы хотим создать страницу About.

1. В view.py импортируем наш модуль Article и добавим метод about :

2. Далее в books/url.py добавим ссылку на about:

3. В base.html меняем href на {% url ‘about’ %} , также делаем с другими ссылками, чтобы меню было кликабильным:

4. И создадим файл about.html со своим содержимым (просто переписать с home.html и заменить на своё):

4. Теперь переходя по ссылке http://127.0.0.1:8000/about/ , мы попадаем на правильную страницу:

Как вывести каждую статью на отдельной странице:

Добавляем метод show_article в view.py к обьекту Article, метод возвращает статью с его id:

1. Импортируем метод get_object_or_404 из модуля django.shortcuts

2. Создадим метод def show_articles, переменная article будет возвращать либо статью с id (article_id), либо 404.

3. И возвращаем страницу со статьей по её id ( {‘article’: article} )

4. Далее, чтобы можно было открыть страницу, нужно в books/url.py добавить следующую строчку в urlpatterns:

url(r’^articles/(?P<article_id>+)/$’, books_views.show_article, name=’article’)

(?P<article_id>+) — это регулярное выражение, article_id — это id статьи, + — от 0 до 9 и выше, запускает отображение статьи метод show_article

5. Создаём шаблон article.html в books/templates/books/, и в шаблоне пишем следующее:

{% extends «books/base.html» %} <!— include base (header or index page) —>

{% block title %}

{{ article.title }} # заголовок

{% endblock title %}

{% block content %}

<h1>{{ article.title }}</h1> # заголовок

<p>{{ article.text }}</p> # текст статьи

{% endblock content %}

И запускаем с id статьи: http://127.0.0.1:8000/articles/1/

Как добавить ссылки на статью (как перейти по ссылке с линка):

И так у нас есть на домашней странице краткий текст каждой статьи, и нам нужно по href
перейти на полный текст статьи или по клику на заголовок статьи.

В шаблоне article.html добавляем в <a href=””> следующий код: {% url ‘article’ article.id %}

article — название шаблона, на который надо перейти и article.id — id статьи, которая нам нужна.

И так, теперь у нас есть работающий мини-сайт на django!

СКАЧАТЬ ГОТОВЫЙ ПРОЕКТ DJANGO ВЫ МОЖЕТЕ ТУТ:

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

Легкого и успешного вам обучения!

Спасибо за внимание, и успехов в учёбе!

Полезные ссылки:

Документация по django: https://docs.djangoproject.com

Customizing authentication in Django (аутентификация пользователей):
https://docs.djangoproject.com/en/1.11/topics/auth/customizing/

ДАННЫЙ МАТЕРИАЛ ПОДГОТОВЛЕН СО СЛЕДУЮЩИХ ИСТОЧНИКОВ:

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

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