30 самых полезных библиотек Python для веб-разработки в 2024 году
Узнайте о лучших библиотеках Python, которые помогут вам в 2024 году. От анализа данных до веб-разработки — все, что нужно для эффективного программирования на Python.
10К открытий55К показов
Если вы только подступились к верстке своего первого сайта на Python, эта статья поможет разобраться, какие библиотеки Python и инструменты — мастхэв, и чем вообще руководствоваться при выборе инструмента.
Кстати, вы можете проверить свои знания: попробуйте угадать, для чего нужна та или иная Python-библиотека.
Гайд написан владелицей Django-сайта. Если вам интересно, как пересесть с nocode-CMS вроде WordPress на самописную админку, посмотрите эту статью.
Универсально для всех фреймворков
Даже если не все инструменты понятны и нужны сразу, сохраните этот листинг в закладки: тогда тулы вроде gunicorn станут «на вырост».
- pillow: библиотека для работы с изображениями. Встроенного модуля в пакете Python не хватает, потому «подушка» и побеждает.
- psycopg: один из лучших адаптеров PostgreSQL для Python. Чуть разработчик заезжает в тему БД на проде, сразу узнает, что де-факто ПО — это PSQL. Поставщик даже не уезжал из страны в феврале 2022 года (настолько ценил свою долю рынка в РФ). Инструменты-аналоги, пытающиеся его обогнать, создают Killer Features, но раскрученность так просто не игнорируется. psycopg позволяет мне обращаться в командной строке к своей базе статей на PSQL в деплой-сервисе Railway и быстро вносить обновления в контент.
- python-dateutil: расширение для стандартного py-модуля datetime, обеспечивающее удобные манипуляции с датой и временем. О некоторых вещах не часто встретишь статью, чтобы автор с огненным интересом описывал тот или иной нюанс. Временные форматы — боль кодера, причем не только питониста. Поэтому рекомендую уделить этим «рабочим лошадкам» внимание. Про них особо не распишешься, но без адекватной малоболезненной обработки любой сайт станет источником душевных страданий и прокрастинации.
- boostrap-icons: это npm-пакет, прикручиваемый к HTML-темплейту с помощью CDN-ссылки:
- tzdata: утилита с информацией о временных зонах, используемая вместе с datetime и прочими.
- urllib3: Для выполнения запросов к веб-серверам (например, для скачивания с сервера или чтения данных с API).
- requests: Одна из самых популярных библиотек для выполнения HTTP-запросов на Python. Запросы к API? Вам сюда. У этого решения есть крутые аналоги, но лучше начинать именно с нее (больше тредов на Stack Overflow — c большей вероятностью отладите). Если уже знаете, что такое асинхронность, отлично подойдут также httpx / asyncio.
- sqlparse подходит для форматирования и парсинга SQL-запросов. Публикуя статью через админку Django, мы отправляем SQL запрос. Эта библиотека «причесывает» GET / POST / DELETE и прочие обращения.
- text-unidecode транслитерирует из Unicode в ASCII.
- pandas: скорее всего, вы прикрутите этот тул сами, без чьих-то рекомендаций. Эта библиотека «вращает» ваши табличные данные под любым углом. В 2024 году опытные питонисты играются с аналогом под названием polars.
- certbot: бесплатные SSL-сертификаты. Без него посещаемость устремится к нулю: браузер покажет заглушку про небезопасный сайт.
- plotly: дизайнерские графики с тонкой настройкой почти любого аспекта. У функции нет параметра, который раскрасит градиентом цвет оси Y? Допишите его! Open Source — это свобода делать точно под себя. Любителям дизайнерского хардкора (“все сам, с нуля”) подойдет matplotlib.
- FastAPI: Современный, быстрый (на основе ASGI) веб-фреймворк для создания API с автоматической генерацией OpenAPI документации и поддержкой параллелизма. Как раз здесь, если уж вам повезло добраться до собственного API, рынок будет заваливать вас повышенным количеством решений, будь то LiteStar или Emmett. FastAPI попросту лучше «покрыт» тредами на Stack Overflow, потому сначала играемся именно с ним. Экспериментаторам советую LiteStar, хорошо дружит с LLM.
- pytest: быстрее способа писать тесты для ваших функций просто нет. На самом деле, на такую проверку кода нередко «забивают» в первые пару лет создания пет-проектных сайтов, но при попадании в хорошую IT-компанию вы вспомните эту благодатную стезю.
- gunicorn: сервер, используемый для запуска Python веб-приложений. Невзрачный участник листинга тоже выполняет работу, которую в первый год программирования понять непросто.
- six: Библиотека для обеспечения совместимости кода между Python 2 и 3. При заимствовании готовых шаблонов сайта следите за тем, чтобы Python был версий 3.x.x.
- PyYAML. Человекочитаемый формат конфиги — это не только приятно, но и быстро. Скорее всего, .yaml придет в вашу жизнь незаметно, вместе с Docker или другим инструментом.
Для подобных файлов Python нужен отдельный коннектор
- wheel служит для ускорения установки библиотек и модулей. Если вы ведете разработку на Windows, а держите проект на Linux, wheel ускорит развертывание. «Колесо» пригодится, если вы деплоите по несколько раз в день. Самым усидчивым в плане разбора документации пригодится и setuptools.
- charset-normalizer: управляет кодировкой текста, чтобы спасти вас от кошмара ниже:
Помимо прочего, обеспечивает совместимость с разными браузерами и спасает от вредоносного кода, отправляемого через формы.
- idna используется для обработки доменных имен с интернациональными символами, например, кириллических, — Internationalized Domain Names (IDN).
- typing-extensions: в базовые курсы Python аннотацию типов уже не включают, но рано или поздно с «задаванием» вида принимаемых данных вы все равно встретитесь. В сниппете ниже мы примем формой только строковые данные:
Инструмент позволяет, например, на Python 2, использовать аннотацию типов крайней версии языкового пакета. Или же наоборот, откатиться в контексте с тройки на двойку.
- cryptography: шифрование, хэширование — защита ваших данных от третьих лиц.
Прочитать зашифрованное сообщение без «ключа» у хакера не получится.
- fsspec унифицирует обращение с файлами вне зависимости от операционной системы. Неважно, на Windows вы или на macOS (а проект задеплоен на Linux), путь до файла будет выглядеть концептуально одинаково.
- MarkupSafe безопасно отобразит HTML/XML-текст.
- python-slugify поможет создать краткие «дружелюбные» URL’ы для однообразных множественных страниц, вроде статей энциклопедии:
Django-мастхэв
- django-tailwind: пакет для интеграции CSS-фреймворка Tailwind с Django. Чтобы не тратить драгоценный ресурс на ультра-супер-стильный дизайн сайта (для моей микроэнциклопедии это банально не нужно), я просто форкнула готовый темплейт с этого репозитория. Он, в свою очередь, использует Tailwind – популярнейший CSS-фреймворк для быстрого создания пользовательских интерфейсов. К популярным py-фреймворкам отдельно пишутся аналогичные коннекторы (см. flask-tailwind).
- django-tinymce: пакет для интеграции WYSIWYG-редактора TinyMCE. Прекрасная минималистичная бесплатная строка инструментов наподобие Google Docs с форматированием шрифтов, вставкой картинок и ссылок. Дополняется почти чем угодно в платном режиме. В бесплатной версии есть следующие возможности:
- django_mathjax: пакет для встраивания MathJax.
Вжух! И читатель увидит следующее:
- django-orm позволяет вашему проекту перескакивать с SQLite на PostgreSQL (и другие комбинации ПО SQL). Это полезно, если разработка ведется на привычном небольшом ПК, а база данных на проде занимает терабайты.
- django-js-asset: Пакет для генерации и управления зависимыми от JavaScript файлами.
Заключение
Стоит признать: подбор стека — задача не для новичков. Пока начинающий веб-разработчик только-только справляется со стандартными для сайта фичами, вроде форм обратной связи и картинками с CDN-ссылок, оперативной памяти мозга на выбор библиотек, как правило, не остается. Вы можете воспользоваться предложенными в статье общепринятыми решениями, однако функционал моего блога и вашего проекта наверняка различаются. Списка выше будет недостаточно.
В такой ситуации полезны LLM: ChatGPT и прочие ассистенты даже с меньшим числом параметров справляются с выдачей общепринятых решений «на пять». Если понадобилось прикрутить распознавание объектов на изображениях, спросите бота, и самое вероятное (читай, раскрученное + отлаженное + обсуждаемое на Stack Overflow) решение выползет на поверхность сразу. Такие модели еще называют стохастическими попугаями: в «скормленном» им Интернете модель-трансформер выберет самое частое название инструмента.
Мне не хочется обманывать новоприбывших, что переписывать под новую библиотеку весь код — нормально. Это ресурсоемко и больно. Тем более, если это ваш пет-проект, и на него приходится разыскивать время. Так что начинаем с проверенного комьюнити решения по умолчанию, и только потом, когда ощутим свободу и желание экспериментировать, пробуем менять pandas на polars.
Полное видео мема здесь.
Если вас как веб-разработчика порадовал какой-то новый питонический инструмент, способный потеснить укоренившиеся решения, поделитесь в комментариях.
10К открытий55К показов