Pythoner
7.21K subscribers
861 photos
27 videos
4 files
655 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
Напоминалка по библиотекам и фрейворкам
🔥11👍6👏2🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
💻 Наглядная работа сессии, файлов cookie, JWT, токенов, SSO и OAuth 2.0 на одной диаграмме

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

💬 Сессия — Сервер сохраняет вашу учетную запись и передает браузеру файл cookie с идентификатором сеанса. Это позволяет серверу отслеживать состояние входа в систему. Но файлы cookie не работают на разных устройствах.

💬 Токен — Ваша учетная запись закодирована в токене, отправленном в браузер. Браузер отправляет этот токен при будущих запросах аутентификации. Хранилище сеансов сервера не требуется. Но токены нуждаются в шифровании/дешифровании.

💬 JWT — Веб-токены JSON стандартизируют токены идентификации, используя цифровые подписи для обеспечения проверки подлинности. Подпись содержится в токене, поэтому сеанс сервера не требуется.

💬 SSO — Система единого входа использует центральную службу аутентификации. Это позволяет одному логину работать на нескольких сайтах.

💬 OAuth2 — Разрешает ограниченный доступ к вашим данным на одном сайте другому сайту без разглашения паролей.

💬 QR-код — Набирающий популярность метод аутентификации. Кодирует случайный токен в QR-код для входа в систему с мобильного устройства. Сканирование кода позволяет войти в систему без ввода пароля.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍3
Распаковка массива

Распаковка массива (iterable unpacking) — это удобный синтаксис для присваивания элементов iterable объектов (списков, кортежей и т. д.) отдельным переменным.

Основные моменты, которые нужно знать:
— Распаковка производится с помощью звездочки *.
— Количество переменных должно соответствовать количеству элементов в iterable объекте, иначе возникнет ошибка.
— Можно использовать распаковку для пропуска элементов.
— Для сбора оставшихся элементов в список используется конструкция *others.
— Распаковка работает с вложенными списками.
— Формат распаковки можно использовать и при передаче аргументов в функции.
👍11🔥43
Находим подстроку

Ключевое слово in используется для проверки, содержится ли элемент в последовательности (список, кортеж, строка) или словаре.
Возвращает логическое значение True если элемент находится в последовательности/словаре, False если нет.

Что нужно знать про поиск подстроки в строке:
— Поиск чувствителен к регистру символов, т. е. различает заглавные и строчные буквы.
— Подстрока может состоять из одного символа.
— Поиск осуществляется слева направо по всей строке.
— Как только вхождение подстроки найдено — поиск прекращается.
— Можно искать все вхождения подстроки, обернув проверку в цикл.
👍104🔥3
🎆Поздравляю всех подписчиков с новым годом 🎆

❤️Спасибо что остаётесь с нашим каналом и наблюдаете за ним 🎊

🎄Желаю вам в наступающем году удачи и радости, чтоб вы преуспели во всех своих достижения и стали крутыми программистами 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
26👍5🔥5
📁Полезная статья по вечному вопросу - "где программисту взять идеи для портфолио?"

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

🤩Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤯3👍21💯1👾1
🌐5 веб-сайтов, которые вы можете использовать для бесплатного размещения своих проектов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥21👏1👌1
Атрибут __all__

Атрибут __all__ используется для контроля того, какие элементы модуля экспортируются при импорте с помощью from module import *.
Этот атрибут должен содержать список имен, которые будут экспортированы.

Если __all__ не определен, то при импорте будут экспортированы все имена, не начинающиеся с _.

Использование __all__ позволяет явно указать автору модуля, какие части модуля являются публичным API, а какие — внутренней реализацией.
Это способствует лучшей структуре кода и предотвращает неожиданный экспорт внутренних элементов модуля.

Проще говоря, __all__ — это простой механизм контроля области видимости при импорте. Он помогает организовать чистый публичный интерфейс модуля.
5👍5🔥31🤓1👾1
🤣21😁54👍1
🖥 Context Managers, a must-use Python feature

Most know them for file handling, but they shine in other areas too, like managing database connections.


Контекстные менеджеры, обязательные для использования 🐍 функции Python.

Вот почему они полезны:

- Управление ресурсами: С их поимщью вы можете Автоматизировать настройку и удаление ресурсов для более чистого, защищенного от утечек кода.

- Обработка ошибок: Элегантно управляйте исключениями, обеспечивая экономию ресурсов.

- Ясность кода: с помощью менеджеров задается четкая область использования ресурсов, что повышает читабельность.

Большинство использует контекстные менеджер для работе с файлами, но они отлично работают и в других случаях, например, при управлении соединениями с базами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👻21🔥1💯1
Функции, поддерживающие только именованные аргументы (kwargs)

**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.

В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs.

В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов.
Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию.

Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args.
👍632🔥2💯2👀2
🌐На Реддите составили таблицу с лучшими нейросетями для разных задач на конец 2023 года
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍41🤯1🤓1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Коды состояния HTTP

Каждый из кодов сгруппирован в разные категории и рассказывает уникальную историю о результате запроса.

1. 1xx — Informational/Информационный: предварительные коды состояния, указывающие, что сервер получил запрос и продолжает процесс.

2. 2xx — Success/Успех: означает, что запрос был успешным, показывая различные результаты, например:
- 200 ОК: Все прошло гладко, сервер успешно обработал запрос.
- 201 Created/Создано: новый ресурс успешно создан.

3. 3xx — Redirection/Перенаправление: означает, что для выполнения запроса необходимо выполнить дополнительные действия, например:
- 301 Moved Permanently/Перемещено навсегда: запрошенный ресурс был окончательно перемещен в другое место.

4. 4xx — Client Error/Ошибка клиента: эти коды обозначают ошибки, вызванные запросом клиента, в том числе:
- 400 Bad Request: сервер не может понять запрос из-за ошибки клиента.
- 404 Not Found/Не найден: запрошенный ресурс не существует на сервере.

5. 5xx — Server Error/Ошибка сервера: указывает на проблемы на стороне сервера, например:
- 500 Internal Server Error/Внутренняя ошибка сервера: на сервере произошло что-то неожиданное, что привело к ошибке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥64
🤣16👍5😁41🔥1
🐍Метод id()

Метод id() возвращает уникальный идентификатор объекта.

Каждый объект в Python имеет свой идентификатор, который назначается при создании объекта. Этот идентификатор гарантированно уникален в пределах жизни объекта.

id() позволяет получить числовое представление идентификатора объекта. Это может быть полезно при отладке и тестировании программы.
Please open Telegram to view this post
VIEW IN TELEGRAM
43🔥3