Библиотека Python разработчика | Книги по питону
19.6K subscribers
1.09K photos
344 videos
82 files
1.02K links
Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др.

По всем вопросам @evgenycarter
Download Telegram
🦾 Пора изучить фреймворк Django!

Забудьте о скучном обучении
— на курсе "Django-разработчик" вас ждут настоящие челленджи и нестандартные практические решения. А еще сильные проекты для портфолио и карьерный сапорт!

Пройдите тест, чтобы понять хватит ли у вас навыков для обучения.

📌У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!

🎁 Успейте на курс "Django-разработчик"! Только до 23 июня скидка 10%, подробности у наших менеджеров - после прохождения теста они свяжутся с вами.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cxKBeW

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое дескрипторы?

Дескрипторы — это механизм, который позволяет контролировать доступ к атрибутам классов. Они предоставляют способ определения специальных методов для доступа, присваивания и удаления атрибутов. Дескрипторы часто используются для реализации логики, связанной с доступом к данным, внутри классов.

Для создания дескриптора нужно определить класс, который реализует хотя бы один из трех вышеуказанных методов. Затем экземпляры этого класса могут быть присвоены атрибутам других классов.

👉@BookPython
Паттерн проектирования «Фасад»

Паттерн проектирования «Фасад» (Facade) используется для предоставления унифицированного интерфейса к группе интерфейсов подсистемы. Он позволяет скрыть сложность и детали взаимодействия между различными компонентами системы, предоставляя клиенту более простой и удобный способ взаимодействия.

👉@BookPython
Цикломатическая сложность

Цикломатическая сложность (Cyclomatic Complexity) — это метрика, используемая для оценки сложности кода на основе количества путей выполнения в программе. Эта метрика была предложена Томасом МакКейбом в 1976 году и обычно используется для определения того, насколько сложно будет тестирование и сопровождение данного кода.

Целью расчета цикломатической сложности является выявление потенциально сложных участков кода, которые могут быть трудными для понимания, тестирования и поддержки. Более высокая цифра цикломатической сложности обычно указывает на большую сложность кода.

👉@BookPython
Cтатический метод

В Python статический метод (staticmethod). Он не требует доступа к атрибутам и методам экземпляра, и может быть вызван независимо от создания экземпляра класса. Статические методы могут использоваться, например, для выполнения операций, которые связаны с классом в целом, но не требуют доступа к данным экземпляра.

Чтобы определить статический метод в классе, используется декоратор

👉@BookPython
Media is too big
VIEW IN TELEGRAM
Сыграем в "Жизнь"! Клеточный автомат на Python [ Pygame ]

В этом видео узнаете, как сделать игру на Python, под названием "Жизнь" ( Conway's Game of Life) — клеточный автомат, придуманный английским математиком Джоном Конвеем в 1970 году. Игру реализуем при помощи языка Python и библиотеки Pygame.

Код https://github.com/StanislavPetrovV/Python-Game-of-life

👉@BookPython
Подборка python библиотек под разные задачи.

👉@BookPython
Rich – библиотека Python для богатого(rich) текста и красивого форматирования в терминале.

Rich API позволяет легко добавлять цвет и стиль в вывод терминала. Rich также может отображать красивые таблицы, индикаторы выполнения, markdown, выделенный синтаксисом исходный код, трассировки и многое другое - из коробки.

https://github.com/Textualize/rich

👉@BookPython
Мега-Учебник Flask


Глава 1: Привет, мир!
Добро пожаловать! Вы собираетесь отправиться в путешествие, чтобы научиться создавать веб‑приложения с помощью Python и фреймворка Flask. В этой первой главе вы узнаете, как настроить проект Flask. К концу этой главы на вашем компьютере будет запущено простое веб‑приложение Flask!

https://habr.com/ru/articles/804245/


Глава 2: Шаблоны
После завершения главы 1 у вас должно получиться простое, но функциональное веб-приложение. Во второй части серии мега-учебника по Flask я собираюсь обсудить, как работать с шаблонами.

https://habr.com/ru/articles/804887/


Глава 3: Веб-формы
В главе 2 я создал простой шаблон для домашней страницы приложения и использовал поддельные объекты в качестве заполнителей для того, чего у меня еще нет, например, пользователей и записей в блоге. В этой главе я собираюсь устранить одно из многих недостатков, которые у меня все еще есть в этом приложении, в частности, как принимать входные данные от пользователей через веб-формы.

https://habr.com/ru/articles/805997/


Глава 4: База данных
Это четвертая часть серии мега-учебника по Flask, в которой я собираюсь рассказать вам, как работать с базами данных. Тема этой главы чрезвычайно важна. Для большинства приложений потребуется поддерживать постоянные данные, которые можно эффективно извлекать, и это именно то, для чего созданы базы данных.

https://habr.com/ru/articles/807371/


Глава 5: Логины пользователей
Это пятая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как создать подсистему входа пользователей.

https://habr.com/ru/articles/808091/


Глава 6: Страница профиля и аватары
Это шестая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как создать страницу профиля пользователя.

https://habr.com/ru/articles/809411/


Глава 7: Обработка ошибок
Это седьмая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как выполнять обработку ошибок в приложении Flask.

https://habr.com/ru/articles/809743/


Глава 8: Подписчики
Это восьмая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как реализовать функцию "подписчики", аналогичную функции Twitter и других социальных сетей.

https://habr.com/ru/articles/811791/


Глава 9: Разбивка на страницы
Это девятая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как разбивать списки записей базы данных на страницы.

https://habr.com/ru/articles/815427/


Глава 10: Поддержка электронной почты
Это десятая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как ваше приложение может отправлять электронные письма вашим пользователям и как встроить функцию восстановления пароля благодаря поддержки электронной почты.

https://habr.com/ru/articles/815623/


Глава 11: Дизайн приложения
Это одиннадцатая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как заменить базовые HTML-шаблоны новым набором, основанным на платформе пользовательского интерфейса Bootstrap.

https://habr.com/ru/articles/816603/


Глава 12: Дата и время
Это двенадцатая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как работать с датами и временем таким образом, чтобы это работало для всех ваших пользователей, независимо от того, где они проживают.

https://habr.com/ru/articles/817289/


Глава 13: I18n и L10n
Это тринадцатая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как расширить Microblog для поддержки нескольких языков. В рамках этой работы вы также узнаете о создании собственных расширений CLI для команды flask.

https://habr.com/ru/articles/817369/


Глава 14: Ajax
Это четырнадцатая часть серии мега-учебника Flask, в которой я собираюсь добавить функцию перевода на живой язык, используя службу переводов Microsoft и немного JavaScript.

https://habr.com/ru/articles/818001/

👉@BookPython
Что такое исключения и как их обрабатывать в Python

Исключения в Python – это события, возникающие во время выполнения программы, которые могут привести к ошибкам или аномальному завершению программы. Они обычно возникают из-за некорректного кода или непредвиденных ситуаций, таких как деление на ноль, доступ к несуществующему файлу или использование неопределенной переменной.

Обработка исключений в Python осуществляется с помощью блоков try и except. Если код внутри блока try вызывает исключение, выполнение переходит к соответствующему блоку except, где можно обработать исключение и продолжить выполнение программы.

Пример использования блоков try и except

try:
x = 10 / 0
except ZeroDivisionError:
x = 0
print("Деление на ноль! Установлено значение x равное 0.")



В данном примере, код внутри блока try приводит к исключению ZeroDivisionError, так как происходит попытка деления на ноль. Блок except обрабатывает это исключение, устанавливая значение переменной x равным 0 и выводя информационное сообщение.

Обработка нескольких исключений
Блок except может обрабатывать несколько типов исключений сразу. Для этого нужно перечислить их в скобках через запятую.

try:
# код, который может вызвать исключение
except (TypeError, ValueError):
# обработка исключений типов TypeError и ValueError


Использование блока finally
Блок finally используется для выполнения кода, который должен быть выполнен в любом случае, независимо от того, возникло исключение или нет. Этот блок должен быть размещен после блоков except.

try:
# код, который может вызвать исключение
except SomeException:
# обработка исключения
finally:
# этот код будет выполнен в любом случае


Создание собственных исключений
Вы можете создавать собственные исключения, наследуя их от базовых классов исключений Python, таких как Exception или BaseException.

class MyCustomException(Exception):
pass

try:
raise MyCustomException("Это мое собственное исключение!")
except MyCustomException as e:
print(f"Обработано исключение: {e}")


Обрабатывая исключения в Python, вы можете сделать свои программы более надежными и устойчивыми к ошибкам. Не забывайте тестировать свой код и применять блоки try, except и finally для обработки возможных исключений.

👉@BookPython
Узнаем время года с помощью Python

Для определения времени года можно использовать текущий месяц и сопоставить его с нужным временем года.

В этом примере мы используем модуль datetime для получения текущей даты и времени. Затем мы сравниваем текущий месяц с нужными месяцами для каждого времени года и определяем соответствующий сезон.

👉@BookPython
🦾 Как превратить веб-разработку на Python в свою суперсилу?

✔️ Освоить фреймворк Django, который упрощает и ускоряет работу над веб-приложениями со сложной логикой.
✔️ Изучить фронтенд-разработку на Vue.js.
✔️ Научиться реализовывать и поддерживать проекты с рендерингом на стороне сервера, а также работать с API.

🔥 И все это всего за 5 месяцев на онлайн-курсе «Django-разработчик» от OTUS. Под руководством опытных экспертов вы не только изучите лучшие инструменты и практики, но и создадите 3 сильных проекта для портфолио.

Старт уже 26 июня!

➡️ Пройдите короткий тест, чтобы получить персональную консультацию менеджера и специальную цену на курс: https://vk.cc/cxSn9K

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Что значит *args, **kwargs? И зачем нам их использовать?

Мы используем *args, когда не уверены, сколько аргументов будет передано функции, или если хотим передать сохраненный список или кортеж аргументов функции.

**kwargs используется, когда мы не знаем, сколько аргументов ключевых слов будет передано, а также он может быть использован для передачи значений словаря в качестве аргументов ключевых слов. Идентификаторы args и kwargs необязательны, вы можете изменить их на другие, типа *другой **пример, но лучше использовать имя по умолчанию.

👉@BookPython
Совет: разделите уровень доступа к данным, используя паттерн "Репозиторий" 🚀.

Этот паттерн позволяет нам легко менять бэкэнд (БД, текстовый файл, CSV и т.д.), уменьшая жесткую связь и повышая гибкость. 💡 📈

#Python пример ниже с использованием sqlmodel + csv:

👉@BookPython
Способы возведения в степень в Python

В Дзене Python есть принцип, согласно которому "должен существовать один и желательно только один очевидный способ сделать это". Однако в Python есть как минимум три способа возведения числа в степень:

⚫️оператор **
⚫️встроенная функция pow()
⚫️функция math.pow()

В этой статье мы рассмотрим каждый из способов и разберемся, чем они отличаются.

https://habr.com/ru/articles/823438/

👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM