Анализатор страниц
Создадите полноценное веб-приложение, которое выполняет запросы по сети и сохраняет данные в базу. Настроите CI и выполните деплой.
Цель
Анализатор страниц – это полноценное приложение на базе фреймворка Flask. Здесь отрабатываются базовые принципы построения современных сайтов на MVC-архитектуре: работа с роутингом, обработчиками запросов и шаблонизатором, взаимодействие с базой данных.
Независимо от используемого способа написания кода, вся веб-разработка бэкенда базируется на двух вещах: протоколе HTTP и клиент-серверной архитектуре.
Любое обращение к сайту — это HTTP-запрос. Результат, который мы видим – это HTTP-ответ. Эти понятия составляют основу любого фреймворка. В свою очередь роутинг завязан на методах HTTP и использует их для формирования конкретных маршрутов. Часто на собеседовании спрашивают: «Что происходит, когда пользователь набирает в браузере адрес сайта и нажимает Enter?». Ответ на этот вопрос станет вам очевидным из собственного опыта, когда вы завершите этот проект.
Код — это только часть сайта. Куда важнее данные внутри него. Но чтобы мы могли собрать данные, сначала нужно правильно спроектировать базу для них.
Здесь понадобятся знания нормальных форм и принципов построения отношений между сущностями. Сам SQL-код для создания структуры базы данных генерируется с помощью миграций, но в этом проекте мы не будем их использовать. Для выполнения SQL-запросов к базе данных воспользуемся библиотекой psycopg.
Бэкенд-разработка не может существовать без фронтенда, ведь у любого сайта есть стили. Поэтому в этом проекте вам предстоит познакомиться с Bootstrap и использовать его компоненты для визуального оформления.
Кроме кода сайта, веб-разработка включает в себя важные инфраструктурные элементы: для запуска сайта нужен веб-сервер и установленная база данных. В свою очередь работа по сети опирается на базовое понимание работы протокола TCP и знакомство с понятием IP-адреса и порта. Со всем этим вы столкнетесь, когда будете разворачивать локальное окружение.
Когда сайт готов, его нужно выложить в публичный доступ — «задеплоить в продакшен». Деплой — это неотъемлемая часть разработки. Существует множество различных подходов к тому, как это делать эффективно. В этом проекте отрабатывается наиболее автоматизированный способ — сервис render.com. Это хостинг, работающий по модели PaaS (платформа как сервис). Он сам отвечает за инфраструктуру и требует определенного способа организации кода для масштабируемости.
Описание
Page Analyzer – это сайт, который анализирует указанные страницы на SEO-пригодность по аналогии с PageSpeed Insights: