Зачем django если есть html

Зачем используют Django и Python, разве не удобнее сразу все сделать через Node.js и javascript фреймворки?

Всем добра, вопрос от чайника, прошу сильно не бить по голове). Изучаю питон и Джанго. И у меня появились вопросы по поводу использования Django. Он конечно очень удобный, позволяет на лету сделать любой не динамический сайт, встроенная система аутентификации, удобная админка, свой REST Api. Итого мы получим хоть и работающий, но голый скелет. Прикрутив Bootstrap мы немного приукрасим скелет, но он все равно не будет отвечать требованиям современных динамических сайтов, типа асинхронная подгрузка комментов, вывод онлайн лайков, дизлайков. Все это может реализовать только умелый js программист. А так как мы бэкенд написали на Django, то для этого программиста придется писать REST Api и затачивать под его требования. И таким образом для получения полноценного сайта нам нужны усилия трех разных человек — дизайнер, питонист, яваскриптер. И допустим если питонист уволится, запьет — яваскриптер не сможет временно заменить его и продолжить работу. Или если яваскриптер уйдет — питонист тоже не сможет делать его работу. В итоге проект повиснет в ожидании исполнителя. А если у нас и фронтенд, и бэкенд будут на javascript, у нас и программисты друг друга лучше будут понимать, да и в случае чего один другого временно может заменить. Ведь многие же яваскриптеры изначально начинают работу с фронтенда, а потом некоторые переходят в бэкенд. А Python разработчики имеют дело в основном только с бэкенд — и понятия про фронтенд у них будут на уровне dummy html, css, bootstrap. В итоге получается что у JS огромное преимущество перед Python в области разработки сайтов, так как на нем можно сразу писать и бэк, и фронт.

Читайте также:  Typescript map object keys

Простой 2 комментария

Источник

Что же такое Django?

17 месяцев назад я начал свою путь в бэкенд разработку Python. Но спустя время я начал сталкиваться со сложностями в обучении на своей платформе. Первые уроки давались легко, а потом начиналось что-то непонятное в буквальном смысле. Заучивание, записывание, практика одного урока — на это уходили дни. А уроков сотни.

Чтобы найти простое объяснение и понять 10 минутный урок, приходилось несколько часов серфить интернет и потеть над кодом, выявляя правильный путь исправления ошибок. Везде говорят, что в первую очередь нужно учиться искать информацию в интернет. Но сейчас, когда я изучаю Django, даже «перекурив» весь русскоязычный мануал, я не понял ничего. В каждом предложении нужно «гуглить» термины. В сотрудничестве с ИИ я попробовал дать простое объяснение, которое поймет даже первоклассник.

Я только учусь и курс Django пройден наполовину. Все это сделано для тех, у кого тоже возникли трудности.

Что такое джанго

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

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

Джанго имеет много полезных функций, которые помогают создавать веб-сайты:

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

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

Что такое проект джанго

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

  1. Когда мы говорим о проекте Django, давай вообразим, что это сам интернет-магазин в целом. В нем мы можем купить товары и просмотреть информацию о них.
  2. Теперь представьте, что у нас есть несколько разных приложений, которые делают разные вещи внутри этого интернет-магазина.
    • Одно из таких приложений может быть «Каталог товаров». Здесь мы можем просмотреть список всех товаров, их названия, изображения и цены. Это как книжка с полным списком товаров в магазине.
    • Еще одно приложение может быть «Корзина покупок». Здесь мы можем добавлять товары в нашу корзину, изменять количество товаров и видеть общую стоимость наших покупок. Это как корзина, в которой мы кладем товары, пока не решим купить их окончательно.
    • И еще одно приложение может быть «Оформление заказа». Здесь мы можем указать наш адрес доставки и подтвердить наш заказ. Это как заполнение специальной формы, чтобы магазин знал, куда доставить наши покупки.
  3. Внутри каждого приложения у нас есть файлы, которые делают разные вещи:
    • У «Каталога товаров» есть файлы, которые описывают модели товаров (как они выглядят и что имеют), представления (как мы показываем список товаров пользователю) и шаблоны HTML (как страница с товарами выглядит).
    • У «Корзины покупок» также есть файлы, которые описывают модели корзины и элементов корзины, представления для добавления/удаления товаров из корзины и шаблоны HTML для отображения корзины.
    • У «Оформления заказа» есть файлы, которые описывают модели заказов и информации о доставке, представления для оформления заказа и шаблоны HTML для отображения формы оформления заказа.
  4. Все эти файлы работают вместе, чтобы создать полноценный интернет-магазин. Они сообщаются друг с другом и используют функции Django, чтобы обрабатывать запросы пользователей и отображать нужные страницы.

Таким образом, проект Django — это целый интернет-магазин, а приложения — это его разные части, которые делают определенные задачи. Каждое приложение имеет свои файлы, которые описывают модели, представления и шаблоны, необходимые для работы этой части магазина.

От запроса до отрисовки страницы

Вот основные этапы и внутренние действия, которые происходят при обработке запроса и отрисовке страницы в Django:

  1. Пользователь открывает браузер и вводит адрес веб-сайта (URL) в строке поиска.
  2. Браузер отправляет запрос на сервер, где расположен веб-сайт.
  3. Сервер получает этот запрос и передает его в Django.
  4. Django получает запрос и смотрит на URL, чтобы понять, какая страница должна быть показана.
  5. Django проверяет файл urls.py в своей структуре проекта, чтобы найти соответствующий URL-шаблон для этой страницы.
  6. Когда Django находит соответствующий URL-шаблон, он вызывает соответствующую функцию представления (view function).
  7. Функция представления обрабатывает запрос и выполняет все необходимые действия, такие как получение данных из базы данных или выполнение бизнес-логики.
  8. Если данные нужны для отображения страницы, Django может использовать модели данных и базу данных для извлечения этих данных.
  9. Далее Django использует шаблон HTML, который соответствует этой странице, чтобы создать окончательную HTML-страницу.
  10. Django заполняет шаблон данными, которые были получены из базы данных или обработаны функцией представления.
  11. Окончательная HTML-страница готова и возвращается обратно на сервер.
  12. Сервер отправляет эту HTML-страницу обратно в браузер пользователя.
  13. Браузер получает HTML-страницу и начинает ее отображать, показывая пользователю содержимое страницы, такое как текст, изображения и ссылки.

Вот таким образом происходит процесс от запроса до отрисовки страницы в Django!

Структура стандартного простого проекта

Вот пример структуры файлов интернет-магазина в Django:

myshop/ ├── manage.py ├── myshop/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── catalog/ │ ├── migrations/ │ ├── __init__.py │ ├── admin.py │ ├── models.py │ ├── views.py │ └── templates/ │ └── catalog/ │ ├── product_list.html │ └── product_detail.html ├── cart/ │ ├── __init__.py │ ├── models.py │ ├── views.py │ └── templates/ │ └── cart/ │ └── cart.html └── checkout/ ├── __init__.py ├── models.py ├── views.py └── templates/ └── checkout/ └── order_confirmation.html

Теперь давай объясню, за что отвечает каждый файл:

  1. manage.py : Это скрипт для управления Django проектом. Он позволяет выполнять различные команды, такие как запуск сервера или выполнение миграций базы данных.
  2. myshop/ (каталог): Это основной каталог проекта Django.
    • __init__.py : Пустой файл, который указывает на то, что эта директория является пакетом Python.
    • settings.py : Файл настроек проекта, содержащий информацию о базе данных, статических файлах, шаблонах и других параметрах.
    • urls.py : Файл URL‑маршрутов проекта, определяющий, какие представления (views) будут обрабатывать запросы для каждого URL‑адреса.
    • wsgi.py : Файл для настройки WSGI‑совместимого сервера (Web Server Gateway Interface), который позволяет запускать Django приложение на веб‑сервере.
  3. catalog/ : Приложение «Каталог товаров».
    • migrations/ : Директория, содержащая миграции базы данных, которые определяют структуру таблиц и схемы данных.
    • __init__.py : Пустой файл, указывающий на то, что эта директория является пакетом Python.
    • admin.py : Файл, определяющий административный интерфейс для управления товарами.
    • models.py : Файл, содержащий модели данных, такие как классы для товаров или категорий.
    • views.py : Файл, содержащий представления (views) для отображения страниц с товарами.
    • templates/ : Директория, содержащая HTML‑шаблоны для визуального оформления страниц.

cart/ : Приложение «Корзина покупок».

  • __init__.py : Пустой файл, указывающий на то, что эта директория является пакетом Python.
  • models.py : Файл, содержащий модели данных, такие как классы для корзины покупок или элементов корзины.
  • views.py : Файл, содержащий представления (views) для добавления товаров в корзину, изменения количества и оформления заказа.
  • templates/ : Директория, содержащая HTML‑шаблоны для визуального оформления страниц корзины.
  1. checkout/ : Приложение «Оформление заказа» (продолжение).
    • models.py : Файл, содержащий модели данных, такие как классы для заказов или информации о доставке.
    • views.py : Файл, содержащий представления (views) для оформления заказа и подтверждения заказа.
    • templates/ : Директория, содержащая HTML‑шаблоны для визуального оформления страниц оформления заказа.

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

Источник

В чем разница между Django и Html?

Я новичок в Django и хотел бы знать, как Django отличается от html?

HTML – это язык, используемый для создания веб-страниц.

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

HTML является частью этого кода. Это код, говорящий “эта информация – это заголовок, эта информация – это абзац, это изображение” и т.д.

Django – это инструмент для создания веб-страниц.

Он может сделать больше, чем это, но это его основы. Написание HTML-кода вручную очень утомительно, не очень эффективно и ограничено: вы не можете создавать страницы, которые адаптируются к человеку, который запрашивает его, например, на странице пользователя или странице поиска.

Django – это инструмент, который может понять, что спрашивает пользователь, и создать код HTML за долю секунды, а затем отправить его обратно. Когда вы видите сайт, такой как Google или Amazon, они используют такой инструмент для отображения того, что вы ищете (хотя они не используют Django, для этого есть много подобных инструментов).

Если вы хотите научиться создавать веб-сайты с Django, вы, вероятно, захотите узнать все в таком порядке:

  1. HTML: вы можете создавать с ней статические веб-сайты
  2. CSS: вы делаете веб-сайт более красивым с расширенными макетами
  3. Python (язык, используемый в Django): вы можете автоматизировать с ним
  4. Django: вы можете автоматически создавать с ним веб-страницы
  5. Javascript: сделать ваши веб-страницы более интерактивными

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

Источник

Оцените статью