- Автор темы
- #1
Первый этап: изучаем основы Python
Основы Python
Python обладает простым и в то же время максимально гибким синтаксисом – одну и ту же задачу на этом языке можно решить множеством различных способов. Однако по оптимальности эти решения могут значительно отличаться друг от друга. Для определения правильного подхода к решению задачи нужно основательно разобраться:
- В особенностях основных типах данных – списков, строк, словарей, кортежей и множеств. К примеру, кортежи работают быстрее списков, а множества – быстрее всех остальных типов, вместе взятых, но при этом используют внушительный объем памяти и не поддерживают индексацию.
- Во встроенных методах, которые Python предоставляет для работы с каждым из этих типов, и в универсальных встроенных функциях. Некоторые функции позволяют лаконично и эффективно выполнять достаточно сложные операции – например, проводить параллельную итерацию нескольких коллекций сразу (zip), или получать доступ к элементу и его индексу одновременно (enumerate), либо применять какое-то действие ко всем элементам сразу (map).
- В методах работы с файлами и файловой системой.
- обычных и вложенных, с фиксированным и произвольным количеством аргументов;
- декораторов и замыканий;
- анонимных (lambda);
- рекурсивных.
Что еще нужно изучить:
- Как запускать Python-код в онлайн-IDE, не требующих установки – Jupyter Notebooks, Google Colab, Repl.it.
- Как установить и настроить десктопную IDE – PyCharm, VS Code.
- Как устанавливать модули, необходимые для решения специфических задач – pandas, numpy и т.п.
Второй этап: ООП и основы работы с веб-сервисами
ООП и основы работы с веб-сервисами
Пора зарегистрировать аккаунт на GitHub, разобраться в концепции системы контроля версий и изучить основные команды Git. Хотя GitHub – не единственный хостинг IT-проектов, его с уверенностью можно назвать самым популярным. Один из плюсов сервиса – бесплатный хостинг для статических сайтов GitHub Pages, где можно разместить любой проект объемом до 1 Гб. Многие разработчики используют GitHub Pages для размещения портфолио, резюме и статических блогов, созданных с помощью Jekyll, Hugo, или генераторов на основе Python – Pelican и Lektor.
Чтобы в репозиториях на GitHub поскорее появились первые серьезные проекты, необходимо вникнуть в парадигму объектно-ориентированного программирования и его основные концепции:
- классы;
- объекты;
- наследование;
- инкапсуляцию;
- полиморфизм.
- Обработку HTTP-запросов с помощью библиотеки request.
- Получение данных от публичных API.
- Форматы JSON и XML.
- Регулярные выражения (Regex).
- Основы веб-скрапинга и парсинга с BeautifulSoup и XPATH.
- код для поиска и обработки данных в древовидных структурах;
- скрипты для скрапинга и парсинга;
- программы для получения и обработки данных публичных API.
Третий этап: основы веб-разработки
Основы веб-разработки на Python
Теперь багажа знаний достаточно для создания первых настоящих веб-приложений. Существует несколько фреймворков на базе Python, но бесспорных лидеров всего два – Flask и Django:
- Flask называют микрофреймворком – он содержит абсолютный минимум инструментов, но отличается впечатляющей гибкостью, подходит для небольших веб-приложений. Функциональность Flask легко расширить с помощью установки дополнительных библиотек и модулей.
- Django поставляется с обширным набором модулей и отличается более жесткой структурой. Отлично подходит для создания масштабных веб-приложений со сложной функциональностью. Как и в случае с Flask, возможности Django можно расширить дополнительными модулями. К примеру, Django по умолчанию включает модуль для тестирования на основе unittest, но при желании протестировать Django-приложение можно с помощью дополнительного модуля django-pytest на основе pytest, и точно такой же модуль flask-pytest доступен для Flask.
Одно из главных преимуществ Flask и Django – наличие ORM, прослойки между базой данных и кодом, которая позволяет программисту работать с БД без знаний языка запросов SQL. В то же время оба фреймворка предусматривают возможность работы с базой напрямую – это может потребоваться для создания максимально оптимизированных запросов на SQL. Для создания небольших веб-приложений подходят базы SQLite и MySQL, для более масштабных – PostgreSQL.
Еще один весомый плюс Flask и Django – простота разработки REST API. Самый популярный инструмент разработки API для Django-приложений – Django REST Framework (DRF), однако при необходимости можно использовать FastAPI и Django Ninja, которые обеспечивают более высокую производительность. Для базового тестирования DRF API достаточно встроенного интерфейса, который доступен по адресу, для более продвинутого тестирования обычно используют Postman.
Для создания Rest API с Flask используют инструменты Connexion, OpenAPI и Flask-Marshmallow, а для тестирования – Swagger UI. Процесс разработки API на основе Flask выглядит чуть сложнее, чем создание API на базе Django.
Что нужно уметь после завершения этого этапа обучения:
- Проектировать структуру серверной части веб-приложения.
- Создавать несложные веб-приложения на основе Flask и Django – блоги, лендинги, лайт-версии известных соцсетей и сервисов.
- Разрабатывать бэкенд и API для приложений, фронтенд которых сделан на JS-фреймворках React, Vue, Angular.
- Размещать статический контент в CDN.
- Понимать, как пишутся запросы к бэкенду с помощью Fetch или Axios.
- Использовать линтеры (Flake8, Ruff) для «причесывания» и стандартизации кода.
- Писать тесты для проверки работы компонентов приложения и API.
- Разворачивать приложения на Linux сервере с помощью Nginx и Gunicorn.
Четвертый этап: продвинутые инструменты и концепции
Продвинутые инструменты и концепции
В набор более сложных концепций, в которые стоит вникнуть на заключительном этапе, входят:
- Принципы разработки высоконагруженных/асинхронных приложений и микросервисов.
- Управление очередями задач и брокеры сообщений: Celery, Dramatiq, RabbitMQ, Redis, Kafka.
- Веб-сокеты и Django Channels.
- Передача потоковых данных с WebRTC.
- Вебхуки (обратные вызовы).
- CI/CD (непрерывная интеграция и доставка) для Django-проектов: Jenkins.
- Контейнеризация Django- и DRF-приложений: Docker и Kubernetes.
- Безопасность приложений на основе Django и Flask: предотвращение SQL-внедрений, межсайтового скриптинга и подделок запросов.
Последнее редактирование модератором:
Последние темы в этом разделе:
- [Alex Erofeev] [Stepik] JavaScript: самый быстрый курс (2024)
- [Михаил Русаков] Написание лайфхаков на Python (2021)
- Пишем DDOS скрипт на Python
- [Саид Магомедов] Python. Микросервисы. Backend на FastAPI [Stepik] (2024)
- Как написать чат-бота на python
- Пишем скрипт по парсингу ответов из gdz.ru
- [Udemy] Кибербезопасность: тестирование на проникновение с помощью Python 3 (2022)
- [Udemy] [ENG] Продвинутый ИИ - глубокое обучение с подкреплением в Python (2024)
- Создание бесплатного API для генерации изображений, используя перехваченные запросы Flux
- [Андрей Сумин] [Stepik] Java с нуля до Junior + Подготовка к собеседованию (2024)