30 самых полезных библиотек Python для веб-разработки в 2024 году
, отредактировано
Если вы только подступились к верстке своего первого сайта на Python, эта статья поможет разобраться, какие библиотеки Python и инструменты — мастхэв, и чем вообще руководствоваться при выборе инструмента.
Кстати, вы можете проверить свои знания: попробуйте угадать, для чего нужна та или иная Python-библиотека.
Гайд написан владелицей Django-сайта. Если вам интересно, как пересесть с nocode-CMS вроде WordPress на самописную админку, посмотрите эту статью.
Универсально для всех фреймворков
Даже если не все инструменты понятны и нужны сразу, сохраните этот листинг в закладки: тогда тулы вроде gunicorn станут «на вырост».
- pillow: библиотека для работы с изображениями.
- psycopg: один из лучших адаптеров PostgreSQL для Python.
- python-dateutil: расширение для стандартного py-модуля datetime.
- boostrap-icons: npm-пакет с иконками, прикручиваемый к HTML-темплейту.
- tzdata: утилита с информацией о временных зонах.
- urllib3: для выполнения запросов к веб-серверам.
- requests: одна из самых популярных библиотек для HTTP-запросов на Python.
- sqlparse: форматирование и парсинг SQL-запросов.
- text-unidecode: транслитерация из Unicode в ASCII.
- plotly: дизайнерские графики с тонкой настройкой почти любого аспекта.
- FastAPI: современный, быстрый веб-фреймворк для создания API.
- pytest: быстрее способа писать тесты для ваших функций просто нет.
- gunicorn: сервер для запуска Python веб-приложений.
- six: библиотека для совместимости кода между Python 2 и 3.
- PyYAML: человекочитаемый формат конфигов.
Для подобных файлов Python нужен отдельный коннектор
- wheel: ускоряет установку библиотек и модулей.
- charset-normalizer: управляет кодировкой текста.
Помимо прочего, обеспечивает совместимость с разными браузерами и спасает от вредоносного кода, отправляемого через формы.
- idna: обработка доменных имен с интернациональными символами.
- typing-extensions: аннотация типов для разных версий Python.
Инструмент позволяет, например, на Python 2, использовать аннотацию типов крайней версии языкового пакета.
- cryptography: шифрование, хэширование — защита ваших данных от третьих лиц.
Прочитать зашифрованное сообщение без «ключа» у хакера не получится.
- fsspec: унифицирует обращение с файлами вне зависимости от ОС.
- MarkupSafe: безопасное отображение HTML/XML-текста.
- python-slugify: создание коротких дружелюбных URL.
Django-мастхэв
- django-tailwind: интеграция CSS-фреймворка Tailwind с Django.
- django-tinymce: интеграция WYSIWYG-редактора TinyMCE.
- django_mathjax: пакет для встраивания MathJax.
Вжух! И читатель увидит следующее:
- django-orm: переключение между SQLite и PostgreSQL.
- django-js-asset: управление зависимыми от JavaScript файлами.
Заключение
Стоит признать: подбор стека — задача не для новичков. Пока начинающий веб-разработчик только-только справляется со стандартными для сайта фичами, вроде форм обратной связи и картинками с CDN-ссылок, оперативной памяти мозга на выбор библиотек, как правило, не остается. Вы можете воспользоваться предложенными в статье общепринятыми решениями, однако функционал моего блога и вашего проекта наверняка различаются. Списка выше будет недостаточно.
В такой ситуации полезны LLM: ChatGPT и прочие ассистенты даже с меньшим числом параметров справляются с выдачей общепринятых решений «на пять». Так что начинаем с проверенного комьюнити решения по умолчанию, и только потом, когда ощутим свободу и желание экспериментировать, пробуем менять pandas на polars.
Мне не хочется обманывать новоприбывших, что переписывать под новую библиотеку весь код — нормально. Это ресурсоемко и больно. Тем более, если это ваш пет-проект, и на него приходится разыскивать время.
Если вас как веб-разработчика порадовал какой-то новый питонический инструмент, способный потеснить укоренившиеся решения, поделитесь в комментариях.