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

По всем вопросам @evgenycarter
Download Telegram
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
Модуль pathlib в Python замечательный, но есть одна особенность pathlib, на которой я часто спотыкаюсь.

Нужен абсолютный путь?

Не используйте метод absolute:

>>> Path("..").absolute()
PosixPath('/home/trey/..')

Use the resolve method:

>>> Path("..").resolve()
PosixPath('/home')



👉@BookPython
Совет по Python💡

С помощью "pathlib" вы можете получить доступ к различным частям пути, таким как имя файла, расширение и родительский каталог. Это позволяет легко манипулировать и анализировать пути к файлам.

👉@BookPython
Создание и обработка Excel файлов с использованием Python

Всем привет! Работа с Excel файлами — одна из частых задач, встречающихся в повседневной разработке. В этой статье рассмотрим, как с помощью Python можно создавать, заполнять, и стилизовать Excel файлы. Для этого мы будем использовать библиотеки pandas, openpyxl и faker (для тестов).

Для начала установим библиотеки:
pip install pandas xlsxwriter openpyxl faker

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

👉@BookPython
Совет по Python💡

f-строки - самый популярный способ форматирования строк.
Знаете ли вы, что они могут не только выводить значения переменных?

Например, в них можно выполнить выражение или вызвать функцию.

👉@BookPython
Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
PS. Решения задач школьники сдают в тестирующую систему, поэтому задачи оформлены в несколько формальном виде.

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

👉@BookPython
Иногда Pytest поражает меня.

TIL pytest позволяет очень просто добавить что-то в переменную окружения PATH для теста:

👉@BookPython
⌨️ Основы Python

Хендбук по Python поможет овладеть основным синтаксисом и принципами языка. Для этого не потребуется специальной подготовки — достаточно знаний по информатике, логике и математике на уровне школьной программы. Кроме основных конструкций в учебнике рассмотрены разные подходы к программированию, реализованные на Python. А в последней главе вы прикоснётесь к главной суперсиле языка — большому количеству прикладных библиотек.

https://education.yandex.ru/handbook/python

👉@BookPython
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python💡

Не используйте pip freeze > requirements.txt.
В итоге вы получите десятки зависимостей, которые вы специально не устанавливали и не знаете, что они делают.

Вместо этого добавьте требование вручную в файл requirements.txt.

Сравните их ☝️

👉@BookPython
Совет по Python💡

В файле "pathlib.mkdir()" задайте "parents=True", чтобы создать все необходимые промежуточные каталоги.

Установите "exist_ok=True", чтобы избежать ошибки, если каталог уже существует.

👉@BookPython