Написать пост

30 самых полезных библиотек Python для веб-разработки в 2024 году

Узнайте о лучших библиотеках Python, которые помогут вам в 2024 году. От анализа данных до веб-разработки — все, что нужно для эффективного программирования на Python.

30 самых полезных библиотек Python для веб-разработки в 2024 году

Если вы только подступились к верстке своего первого сайта на 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-ссылки:
30 самых полезных библиотек Python для веб-разработки в 2024 году 1
Коллекция 2000+ иконок в стиле Material Design (стандарт Google), которую мы видим каждый день на 95% сайтов. Источник: icons.getbootstrap.com
  • tzdata: утилита с информацией о временных зонах, используемая вместе с datetime и прочими. 
  • urllib3: Для выполнения запросов к веб-серверам (например, для скачивания с сервера или чтения данных с API).
  • requests: Одна из самых популярных библиотек для выполнения HTTP-запросов на Python. Запросы к API? Вам сюда. У этого решения есть крутые аналоги, но лучше начинать именно с нее (больше тредов на Stack Overflow — c большей вероятностью отладите). Если уже знаете, что такое асинхронность, отлично подойдут также httpx / asyncio.
  • sqlparse подходит для форматирования и парсинга SQL-запросов. Публикуя статью через админку Django, мы отправляем SQL запрос. Эта библиотека «причесывает» GET / POST / DELETE и прочие обращения.
  • text-unidecode транслитерирует из Unicode в ASCII.
			>>> from text_unidecode import unidecode
>>> unidecode(u'какой-то текст')
... 'kakoi-to tekst'
		
  • pandas: скорее всего, вы прикрутите этот тул сами, без чьих-то рекомендаций. Эта библиотека «вращает» ваши табличные данные под любым углом. В 2024 году опытные питонисты играются с аналогом под названием polars.
  • certbot: бесплатные SSL-сертификаты. Без него посещаемость устремится к нулю: браузер покажет заглушку про небезопасный сайт.
30 самых полезных библиотек Python для веб-разработки в 2024 году 2
Срок жизни бесплатного SSL-серта на Let’s Encrypt составляет 4 месяца
  • plotly: дизайнерские графики с тонкой настройкой почти любого аспекта. У функции нет параметра, который раскрасит градиентом цвет оси Y? Допишите его! Open Source — это свобода делать точно под себя. Любителям дизайнерского хардкора (“все сам, с нуля”) подойдет matplotlib.
30 самых полезных библиотек Python для веб-разработки в 2024 году 3
3D Surface Plot. Изображение: plotly.com.
  • FastAPI: Современный, быстрый (на основе ASGI) веб-фреймворк для создания API с автоматической генерацией OpenAPI документации и поддержкой параллелизма. Как раз здесь, если уж вам повезло добраться до собственного API, рынок будет заваливать вас повышенным количеством решений, будь то LiteStar или Emmett. FastAPI попросту лучше «покрыт» тредами на Stack Overflow, потому сначала играемся именно с ним. Экспериментаторам советую LiteStar, хорошо дружит с LLM.
  • pytest: быстрее способа писать тесты для ваших функций просто нет. На самом деле, на такую проверку кода нередко «забивают» в первые пару лет создания пет-проектных сайтов, но при попадании в хорошую IT-компанию вы вспомните эту благодатную стезю.
  • gunicorn: сервер, используемый для запуска Python веб-приложений. Невзрачный участник листинга тоже выполняет работу, которую в первый год программирования понять непросто. 
  • six: Библиотека для обеспечения совместимости кода между Python 2 и 3. При заимствовании готовых шаблонов сайта следите за тем, чтобы Python был версий 3.x.x.
30 самых полезных библиотек Python для веб-разработки в 2024 году 4
Python 3 вышел более десяти лет назад, а многим до сих пор актуальна проблема перехода
  • PyYAML. Человекочитаемый формат конфиги — это не только приятно, но и быстро. Скорее всего, .yaml придет в вашу жизнь незаметно, вместе с Docker или другим инструментом. 
			# config.yaml
server:
  host: "0.0.0.0"
  port: 8080

database:
  type: "postgresql"
  host: "localhost"
  port: 5432
  username: "db_user"
  password: "db_password"
  database_name: "mydatabase"

logging:
  level: "DEBUG"
  file: "app.log"

api_keys:
  google_maps: "YOUR_GOOGLE_MAPS_API_KEY"
  stripe: "YOUR_STRIPE_API_KEY"
		

Для подобных файлов Python нужен отдельный коннектор

  • wheel служит для ускорения установки библиотек и модулей. Если вы ведете разработку на Windows, а держите проект на Linux, wheel ускорит развертывание. «Колесо» пригодится, если вы деплоите по несколько раз в день. Самым усидчивым в плане разбора документации пригодится и setuptools.
  • charset-normalizer: управляет кодировкой текста, чтобы спасти вас от кошмара ниже:
30 самых полезных библиотек Python для веб-разработки в 2024 году 5
«Битый» текст. Источник: stackoverflow.com

Помимо прочего, обеспечивает совместимость с разными браузерами и спасает от вредоносного кода, отправляемого через формы.

  • idna используется для обработки доменных имен с интернациональными символами, например, кириллических, — Internationalized Domain Names (IDN). 
			>>> import idna
>>> print(idna.decode('https://xn--d1aqf.xn--p1ai/'))
... дом.рф
		
  • typing-extensions: в базовые курсы Python аннотацию типов уже не включают, но рано или поздно с «задаванием» вида принимаемых данных вы все равно встретитесь. В сниппете ниже мы примем формой только строковые данные:
			from typing_extensions import Annotated

def greet(name: Annotated[str, "Имя"]) -> None:
    print(f"Привет, {name}")
		

Инструмент позволяет, например, на Python 2, использовать аннотацию типов крайней версии языкового пакета. Или же наоборот, откатиться в контексте с тройки на двойку.

  • cryptography: шифрование, хэширование — защита ваших данных от третьих лиц.
			>>> from cryptography.hazmat.primitives import hashes
>>> 
>>> # Инициализация хеш-функции
>>> digest = hashes.Hash(hashes.SHA256())
>>> digest.update(b'Сообщение, которое нужно хэшировать')
>>> hash_value = digest.finalize()
>>> print(f'Хэш SHA-256: {hash_value.hex()}')… Хэш SHA-256: c8e24f5203b6db74cd0587772f22724123e070c50b5c3d0bc2e22a2994dde583
		

Прочитать зашифрованное сообщение без «ключа» у хакера не получится.

  • fsspec унифицирует обращение с файлами вне зависимости от операционной системы. Неважно, на Windows вы или на macOS (а проект задеплоен на Linux), путь до файла будет выглядеть концептуально одинаково.
  • MarkupSafe безопасно отобразит HTML/XML-текст.
  • python-slugify поможет создать краткие «дружелюбные» URL’ы для однообразных множественных страниц, вроде статей энциклопедии:
30 самых полезных библиотек Python для веб-разработки в 2024 году 6
Slug встанет в конец URL'a: helenkapatsa.ru/blogpost/radialnoye-derevo

Django-мастхэв

  • django-tailwind: пакет для интеграции CSS-фреймворка Tailwind с Django. Чтобы не тратить драгоценный ресурс на ультра-супер-стильный дизайн сайта (для моей микроэнциклопедии это банально не нужно), я просто форкнула готовый темплейт с этого репозитория. Он, в свою очередь, использует Tailwind – популярнейший CSS-фреймворк для быстрого создания пользовательских интерфейсов. К популярным py-фреймворкам отдельно пишутся аналогичные коннекторы (см. flask-tailwind).
  • django-tinymce: пакет для интеграции WYSIWYG-редактора TinyMCE. Прекрасная минималистичная бесплатная строка инструментов наподобие Google Docs с форматированием шрифтов, вставкой картинок и ссылок. Дополняется почти чем угодно в платном режиме. В бесплатной версии есть следующие возможности:
30 самых полезных библиотек Python для веб-разработки в 2024 году 7
Редактор Tiny MCE для Django-сайта
30 самых полезных библиотек Python для веб-разработки в 2024 году 8
Формула медианы перед рендерингом в тексте

Вжух! И читатель увидит следующее:

30 самых полезных библиотек Python для веб-разработки в 2024 году 9
Полноценная дробь с числителем и знаменателем
  • django-orm позволяет вашему проекту перескакивать с SQLite на PostgreSQL (и другие комбинации ПО SQL). Это полезно, если разработка ведется на привычном небольшом ПК, а база данных на проде занимает терабайты.
  • django-js-asset: Пакет для генерации и управления зависимыми от JavaScript файлами.

Заключение

Стоит признать: подбор стека — задача не для новичков. Пока начинающий веб-разработчик только-только справляется со стандартными для сайта фичами, вроде форм обратной связи и картинками с CDN-ссылок, оперативной памяти мозга на выбор библиотек, как правило, не остается. Вы можете воспользоваться предложенными в статье общепринятыми решениями, однако функционал моего блога и вашего проекта наверняка различаются. Списка выше будет недостаточно.

В такой ситуации полезны LLM: ChatGPT и прочие ассистенты даже с меньшим числом параметров справляются с выдачей общепринятых решений «на пять». Если понадобилось прикрутить распознавание объектов на изображениях, спросите бота, и самое вероятное (читай, раскрученное + отлаженное + обсуждаемое на Stack Overflow) решение выползет на поверхность сразу. Такие модели еще называют стохастическими попугаями: в «скормленном» им Интернете модель-трансформер выберет самое частое название инструмента.

30 самых полезных библиотек Python для веб-разработки в 2024 году 10
YandexGPT 3 советует для Object Detection использовать OpenCV

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

30 самых полезных библиотек Python для веб-разработки в 2024 году 11

Полное видео мема здесь.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
6К открытий32К показов