Создание сайта на Django | Джино • Справка
Django — фрэймворк для создания сложных и комплексных сайтов на языке Python.
В этой статье на примере создания сайта, показывающего погоду в разных городах мира, мы продемонстрируем работу с API, HTML-шаблонами и базами данных в Django.
Запускать проект будем на Джино.Хостинге.
Подготовка к работе
Создадим для нашего сайта новый хостинг-контейнер. Для этого в разделе АккаунтХостинг выберем «Создать новый хостинг». После создания перейдём в раздел «Услуги» и подключим «Поддержку скриптовых языков» и «Поддержку SSH».
После подключения выбранных услуг подключимся к хостингу по SSH. Данные для SSH-подключения указаны в разделе УправлениеНастройки SSH.
Перед первым подключением к хостинг-контейнеру в разделе УправлениеНастройки SSH нужно задать пароль пользователя. Порт для подключения используется стандартный — 22.
Также в этом разделе можно настроить ограничение доступа к хостингу только с указанных IP-адресов.
После подключения к хостингу по SSH создадим виртуальное окружение для Python:
Эта команда создаёт виртуальное окружение weather_venv
для Python 3.10. Список всех доступных версий Python и пути к их интерпретаторам указаны в разделе УправлениеТехническая информация.
После создания виртуального окружения активируем его
и установим Django с помощью стандартного пакетного менеджера
Теперь наше виртуальное окружение готово к работе. Перейдём к созданию проекта.
Создание и запуск проекта
Создавать новый проект будем на локальной машине с последующим деплоем проекта на Хостинг. О том, как подготовить Хостинг к развёртыванию нового проекта и о способах загрузки проекта на сервер можно прочитать в нашей инструкции по развёртыванию проекта на Джино.Хостинге.
Создадим новый проект Django:
Эта команда создаст папку weather_project со вложенной одноимённой папкой weather_project и файлом manage.py, отвечающим за управление проектом.
Уже на данном этапе можно настроить загрузку проекта на сервер и проверить работу пустого Django-проекта. Поскольку наше приложение будет объёмным и в течение работы мы будем несоклько раз обновлять его и изменять, рекомендуем само приложение создавать в IDE VSCode или PyCharm, из которых удобно настроить выгрузку приложения непосредственно на сервер.
После загрузки проекта на хостинг в папку с доменным именем, на котором он будет работать, проверим его работу.
Для запуска Django-проекта на Хостинге нужно создать файл passenger_wsgi.py, который будет отвечать за связь проекта с веб-сервером. Содержимое файла должно быть следующим:
Здесь ~/weather_venv/bin/python3
— путь к виртуальному окружению на хостинге; weather_project.wsgi
— указание на основной файл, который будет запускать приложение.
Теперь нужно изменить настройки самого нашего проекта, чтобы он мог запускаться на выбранном домене. Для этого в папке weather_project откроем файл settings. py и в строке ALLOWED_HOSTS
укажем выбранное доменное имя, например ALLOWED_HOSTS = [
example.com]
.
После этого в разделе УправлениеНастройки веб-сервера для выбранного домена укажем версию Python, которая будет использоваться для работы сайта и нажмём Перезагрузить, чтобы перезагрузить веб-сервер и проверить работу нашего проекта.
В адресной строке браузера укажем наше доменное имя. Если всё работает правильно, мы увидим стандартную стартовую страницу Django
Создание приложения
Вернёмся к нашей IDE и создадим приложение в нашем проекте:
Эта команда создаст папку weather_app, в которой уже находятся шаблоны для создания основных файлов нашего приложения.
Теперь перейдём в папку weather_app и создадим здесь файл urls.py:
Этот файл дублирует файл urls.py всего проекта. Основное отличие его в том, что в этом файле будут только те URL, которые относятся к нашему приложению, а не ко всему проекту в целом.
Чтобы добавить наше приложение к проекту, добавим его название в список уже установленных приложений проекта. Для этого в папке weather_project откроем файл settings.py и в блок INSTALLED_APPS
добавим название нашего приложения:
Теперь изменим основной файл urls.py, находящийся в папке weather_project. Мы добавим к нему строку, указывающую на использование нашего нового файла urls.py:
Создание HTML-шаблона
Следующим шагом нам нужно создать HTML-шаблон, в который будут экспортироваться полученные по API данные и отображаться на главной странице нашего сайта.
Создадим в папке нашего приложения weather_app папку для шаблонов templates. В папке templates создадим папку для шаблонов приложения weather и уже в этой папке создадим файл index.html.
Содержимое индексного файла (~/domains/example.com/weather_app/templates/weather/index.html
) будет следующим:
В Django-проекте основное взаимодействие происходит между файлами views.py приложения и urls.py проекта. Теперь, когда шаблон готов, изменим эти файлы для запуска приложения.
Откроем файл views.py и приведём его к следующему виду:
Здесь мы назвали наш основной запрос index и использовали функцию render для обращения к файлу шаблона. Теперь добавим url, который будет отправлять запрос к этому шаблону. Откроем файл urls.py, который мы создали в папке с нашим приложением и приведём его к следующему виду:
Здесь описано перенаправление запроса к файлу views.py, который мы только что изменили.
Проверим работу нашего приложения! Загрузим его на сервер и перезагрузим веб-сервер (УправлениеНастройки веб-сервера). Откроем браузер и проверим страницу нашего сайта:
API
Для работы нашего приложения, нам будут нужны актуальные данные о погоде в разных городах мира. Получать их мы будем от одного из свободных погодных сервисов — Open Weather Map (opens new window).
Для получения данных по API нам нужно зарегистрироваться на сайте и в личном кабинете получить уникальный ключ, которым будем подписывать запрос
Чтобы проверить работу полученного ключа, можно через бразуер отправить запрос к приложению в следующем формате:
В ответ в браузере должна появиться информация в JSON-формате:
Из этого объёма нам будут нужны только основные сведения. Для этого наше приложение будет конвертировать JSON-формат в формат данных, воспринимаемых Python.
Настроим работу запросов и конвертирование полученные данных из JSON-формата в формат данных Python. Для этого добавим в файл views.py строки import requests
, url
, city
, city_weather
:
Мы добавили URL, к которому будем отправлять запрос и строку, отвечающую за конвертирование данных из JSON в Python-формат.
В нашем случае в URL не указан город, город указан отдельно в строке city
и сейчас это Penza. Позже мы исправим это и будем указывать город в базе данных и через специальную форму ввода в самом приложении.
Сейчас, когда наше приложение отправляет запрос и получает ответ, можно перейти к отображению полученных данных на нашем сайте.
Отправка данных в шаблон
Чтобы отобразить полученные данные на странице сайта, нужно передать их в index.html. Для этого создадим библиотеку значений, данные из которой и будем передавать в шаблон.
В файле views.py добавим следующие строки:
Здесь мы добавили блок weather={}
, в котором определили переменные city
, temperarute
, description
и icon
. Этим переменным мы присвоили определённые значения из получаемого по API массива данных.
Теперь, чтобы передать эти данные в шаблон создадим дополнительную переменную context
, которая и будет передавать все данные в шаблон. Здесь же, в файле views.py добавим строки:
Переменная context
— это словарь, в котором содержатся все данные блока weather
.
Теперь нужно настроить отображение получаемых данных в самом HTML-шаблоне. Откроем файл index.html и вместо значений, которые на предыдущем шаге задавали вручную вставим значения наших новых переменных, используя
В данном случае важно помнить, что при вызове переменной из словаря нужно использовать .
, а не стандартный синтаксис Python (например, вызов переменной city будет выглядеть как weather.city
вместо привычного weather[‘city’]
.
После внесения необходимых изменений снова обновим наше приложение на сервере и на главной странице нашего сайта увидим, что информация о погоде в указанном городе получена.
Следующая «проблема» нашего приложения — указание города. В данном случае он указан напрямую в коде. Это неправильно — сделаем так, чтобы список городов, для которых нужно отображать информацию, хранился в базе данных.
Воспользуемся для хранения списка городов SQLite, идущей в составе Django. Чтобы добавить города в базу, создадим дополнительную форму в окне администратора приложения.
Администрирование приложения
Создадим администратора нашего приложения командой:
Эта команда запустит процесс создания администратора нашего сайта, в ходе которого мы укажем его основные данные: пароль, адрес электронной почты и т.д.
После создания администратора, вход в панель администрирования осуществляется через браузер по адресу http://your_domain/admin
.
Теперь добавим в список доступных администратору операций возможность создавать список городов. Для этого воспользуемся файлом models.py, который находится в папке нашего приложения. Приведём этот файл к следующему виду:
Эта директива создаст в базе данных приложения таблицу из одной колонки, которая будет называться «name» и в которой будут храниться названия городов.
Чтобы создать эту таблицу в базе, нужно создать связи командой makemigrations
и затем на основании этих связей обновить содержимое приложения:
Таблица в базе создана и готова к заполнению. Чтобы заполнить её, добавим форму ввода города в панель администрирования. Изменим для этого файл admin.py нашего приложения. Привдём его к следующем виду:
Теперь в панели администрирования появилась новая форма для ввода городов. Добавим несколько.
Добавление городов на главную страницу сайта
После того, как мы добавили в базу список городов, нам нужно изменить файлы views.py и index.html, чтобы на главной странице нашего сайта отображались все города.
Начнём с изменения файла views.py. Импортируем столбец City и сделаем отдельный запрос по API для каждого из городов:
Теперь нам нужно сохранить данные для каждого города из списка и передать их в HTML-шаблон. Для этого создадим отдельный список weather_data
, в котором будут храниться данные для каждого города.
Затем заменим переменную City
на cities
.
После — добавим словарь weather
для каждого города в общий список weather_data
и в конце немного изменим context
, чтобы он передавал весь список в HTML-шаблон, а не только один блок данных.
В итоге файл views.py должен прийти к такому виду:
Далее, изменим index.html — добавим цикл в отображение данных в шаблоне. Для этого добавим строки {% for weather in weather_data %}
и {% endfor %}
в начало и конец отображения данных о городах. В итоге, блок отображения данных должен стать таким:
Теперь можно проверить, что у нас получилось. В адресной строке браузера адрес нашего сайта. В зависимости от добавленных в список городов, главная страница сайта должна выглядеть примерно так:
Создание формы ввода
Последним, что осталось сделать для нашего сайта — создать форму ввода, чтобы пользователи могли добавлять города прямо с главной страницы сайта.
Для этого создадим новый файл forms.py в папке нашего приложения. Содержимое файла будет следующим:
Это форма ввода нового имени города. Чтобы она заработала, нужно добавить её описание во views.py и передать данные из неё в шаблон.
Начнём с изменений во views.py
Мы добавили описание передачи данных из формы и описали саму форму ввода данных.
Теперь изменим index.html
В индексный файл мы добавили блок описания формы и CSRF-токен, необходимый для отправки запросов из Django.
После описания формы ввода в шаблоне, нам нужно проверить добавить во views.py блок, который будет отвечать за обработку запросов, отправленных в форме:
Здесь мы добавили if
для проверки наличия запроса, отправленного из HTML-шаблона. Далее полученные данные сохраняются и передаются в обработку.
Сохраните все сделанные изменения и перезагрузите веб-сервер. Теперь можно проверять работу формы для добавления городов. Добавим, например, «Sydney»:
Заключение
Мы описали создание сайта на Django с использованием HTML-шаблонов, запросов по API, баз данных и формой для добавления информации в базу данных.
Создание сайта. Простое начало
Создание сайта — дело, которым интересно заниматься. Каждый создаёт свой собственный сайт для разных целей: кто-то желает создать сборник статей, собранных под определённую тематику, кто-то использует свой энтузиазм и свои познания для создания исключительно коммерческого сайта, ну, а кто-то желает создать новый файлообменнек.
Прежде, чем приступить к созданию сайта стоит понять, что сам процесс отличается от того, что многие уже успели увидеть. Так, например, создать сайт можно даже не используя блокнот. Во Всемирной Паутине существует великое множество редакторов сайтов, с помощью которых большинство веб-страниц и создаются.
Однако у данного способа создания есть свои минусы. Один из которых — ограниченность инструментария. Создатель подобного сайта не сможет добавить какие-либо свои элементы, если они не предусмотрены конструкцией редактора. И тут на помощь приходят языки программирования.
Добрая половина сайтов создаётся на языке программирования HTML. Но многие создатели сайта вводят в конструкцию сайта каскадные таблицы, JavaScript-библиотеки, а в некоторых случаях применяются даже элементы из других языков программирования. Очевидные плюсы создания сайтов с помощью языков программирования видны сразу. Один из которых — возможность добавлять собственные элементы, и изменять сайт по своему. Но для простого сайта без библиотек таблиц и т. п., будет достаточно простого знания HTML. Не лишним будет и умение владеть графическими редакторами, чтобы состряпать нормальный внешний вид для сайта.
Как создать свой сайт?
Используя любой текстовый редактор для html, коих в интернете множество или даже наш редактор в файл менеджере панели управления хостингом http://pwhost.ru вы можете легко создать свои первые страницы.
Смотрите способы создания сайта тут https://host-support.ru/knowledgebase.php?category=5
В первую очередь, необходимо создать титульную страницу, на которой будут выводиться вся информация о сайте и кнопки, которые выводят на другие страницы сайта. Но для начала необходимо весь документ заключить в тег <html>. Следующий тег, <body> используется создателями сайтов для размещения картинок, текста и всё что вы пишите на странице сайта, или же для изменения цвета выводимого текста. Теги <title> и <head> используются для помещения в них заголовков для сайта. Первый используется для обозначения заголовков на странице, а второй — для обозначения прочей информации на странице созданного сайта.
Более подробно смотрите в документации по html http://htmlbook.ru/samhtml/struktura-html-koda
Выглядеть это будет так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Пример веб-страницы</title>
</head>
<body>
<h2>Заголовок</h2>
<!— Комментарий —>
<p>Первый абзац.</p>
<p>Второй абзац.</p>
</body>
</html>
Как сделать заголовок?
А для заголовков на сайте используются теги, обозначающие разные уровни для заголовков, коих насчитывается целых 6. Обозначаются они следующими тегами:
• <h2>
• <h3>
• <h4>
• <h5>
• <h5>
• <h6>
Как управлять текстом?
Ещё один, не менее важный тег в сайтодельстве, является тег <font> — тег, отвечающий за выделение цвета. Но не имеется в виду цветовое выделение цвета, а скорее его выделение шрифтом. Однако подобное выделение бывает только следующим:
• Жирное (<b>)
• Курсив (<i>)
• Подчёркнутое (<u>)
Существует ещё тысячи других тегов для выделения, но для создания простого сайта будет достаточно только этих трёх.
Но это ещё не все тонкости, которые используются в создании сайтов. Однако они являются основными, и без их участия создание любого сайта невозможно.
———————-
Если вы ещё думаете какой хостинг выбрать, обязательно обратите внимание на наши тарифы! https://pwhost.ru/hosting.html
Почему HTML используется на веб-страницах?
HTML или язык гипертекстовой разметки — это код, из которого состоит веб-страница. Это стандартный язык, который понимают все веб-браузеры. Таким образом, используя HTML, вы можете создавать страницы, которые будут выглядеть одинаково на любом устройстве или платформе. Помимо основных параметров форматирования текста, HTML позволяет добавлять на страницы изображения, видео и другой мультимедийный контент. 1 Кроме того, он предоставляет способы управления тем, как пользователи отображают ваш контент и взаимодействуют с ним. Если вам интересно узнать больше о HTML и о том, как использовать его для создания красивых и эффективных веб-страниц, продолжайте читать!
Каковы преимущества использования HTML на веб-страницах?- При создании веб-сайта HTML является основой, которая объединяет все элементы содержимого и дизайна. 2
- Придает структуру веб-странице, определяя такие элементы, как заголовки, абзацы и ссылки. Без HTML веб-страница была бы просто мешаниной текста и изображений.
- В то время как другие технологии, такие как языки программирования CSS и JavaScript, улучшают внешний вид и функциональность веб-сайта, HTML остается важнейшим компонентом каждой отдельной веб-страницы. 3
- Однако помимо эстетики HTML также играет ключевую роль в улучшении поисковой оптимизации веб-сайта (SEO). 4 Включая правильные теги и заголовки, HTML помогает поисковым системам легко сканировать и индексировать сайт, повышая его шансы на появление в релевантных результатах поиска.
- Как для веб-разработчиков, так и для маркетологов понимание и использование HTML может привести к улучшению видимости в Интернете и увеличению потенциала успеха. Короче говоря, HTML необходим для создания эффективного веб-сайта.
Когда пользователь посещает веб-сайт, браузер отправляет запрос на сервер, на котором размещен сайт. Затем сервер извлекает HTML-документ и отправляет его обратно в браузер. Браузер считывает HTML-код и преобразует его в визуальный макет, позволяя пользователю взаимодействовать с веб-сайтом.
HTML играет важную роль в этом процессе, так как определяет структуру и содержание веб-сайта. Наряду с языками программирования CSS и JavaScript HTML позволяет разработчикам создавать визуально привлекательные и функциональные веб-сайты. Помимо важности, HTML довольно прост в изучении и использовании для новичков. 5
Понимая основные теги и атрибуты, даже начинающие разработчики могут создавать свой собственный веб-контент. В целом, HTML является неотъемлемой частью создания успешных веб-сайтов.
Большинство веб-браузеров, таких как Microsoft ® Internet Explorer ® , Mozilla ® Firefox или Google Chrome™, могут отображать HTML-страницы. Кроме того, существует несколько бесплатных и коммерческих программных пакетов, позволяющих просматривать HTML-страницы в автономном режиме.
Как разработать веб-страницу с помощью HTML?Для веб-разработчика важно хорошо разбираться в HTML. Создать HTML-страницу относительно просто. Многие доступные бесплатные и коммерческие пакеты программного обеспечения помогут вам в создании вашей страницы. Кроме того, несколько онлайн-руководств могут помочь вам в этом процессе.
Вот несколько основных шагов для создания HTML-страницы. 7,9
- Чтобы начать использовать HTML, сначала создайте пустой документ в текстовом редакторе и сохраните его с пометкой «9».0062 .html ”расширение файла.
- Затем документ можно просмотреть в любом веб-браузере, где вы увидите только необработанный HTML-код.
- С помощью таких тегов, как
- Также можно улучшить дизайн и макет с помощью CSS и других языков стилей.
Включив эти элементы в HTML-код, вы сможете создавать хорошо продуманные и функциональные веб-страницы.
Какие есть распространенные теги HTML? При написании HTML-кода теги используются для указания назначения различных элементов на веб-странице. Наиболее часто используемые теги включают тег абзаца
HTML является основой дизайна и функционирования веб-сайта. Он обеспечивает структуру веб-страниц, которая позволяет браузерам понимать и отображать содержимое страницы. Понимая, как работает HTML, вы можете создавать более качественные веб-сайты с более сложными функциями. Нашли эту статью интересной? Чтобы прочитать больше таких статей, посетите блог Byju’s FutureSchool. Отказ от ответственности: Все товарные знаки и торговые марки являются собственностью их соответствующих владельцев и упоминаются только в информационных целях. Эти владельцы товарных знаков не связаны с FutureSchool BYJU или ее веб-сайтом, а также не спонсируют и не поддерживают FutureSchool BYJU или какие-либо ее продукты.
Другие важные теги включают теги заголовков 9от 0063 до
, которые обозначают разные уровни заголовков; теги списка
и
, используемые для упорядоченных и неупорядоченных списков соответственно; и тег div
Это лишь некоторые из множества HTML-тегов, находящихся в распоряжении веб-разработчика. Изучение их функций имеет решающее значение для создания визуально привлекательных и функциональных веб-сайтов.