Kangaroo
2.27K subscribers
112 photos
61 files
432 links
Kangaroo — о программировании и технологиях.

Python, серверная разработка, инфраструктура, ИИ и собственные проекты. Статьи, технические разборы, эксперименты и наблюдения из практики.

Иногда — математика и котики :)

По всем вопросам: @Lodhel
Download Telegram
PostgreSQL, пожалуй, это самая продвинутая реляционная база данных в мире Open Source Software. По своим функциональным возможностям она не уступает коммерческой БД Oracle и на голову выше собрата MySQL.

Если вы создаёте на Python веб-приложения, то вам приходиться работать с БД. В Python популярными библиотеками для работы с PostgreSQL является psycopg2 и postgresql.
Фреймворк Django появился в далёком 2003 году, то есть 15 лет назад. За эти годы многое изменилось. Сейчас Django является самым популярным веб-фреймворком в экосистеме Python. И это не просто так: поразительное качество документации, частота релизов ошеломляет, очень сильное сообщество разработчиков, активная поддержка со стороны коммерческих и некоммерческих организаций. Чтобы оставаться "на плаву" и быть актуальным инструментом, необходимо реагировать на вызовы рынка. И одним из таких вызовом для фреймворка является появление WebSocket и HTTP 2.

Задача WebSocket и HTTP 2 заключается в улучшении пользовательского взаимодействия (user experience) с веб-приложением путем сокращения задержек в передаче данных (уменьшение объема передаваемых данных, установка постоянного соединения с сервером). Django создавался по старой модели HTTP версии 1.1 "запрос-ответ": браузер посылает запрос серверу, тот в свою очередь его анализирует и отправляет ответ назад. Каждый запрос содержит в себе всю необходимую информацию: заголовки, куки, данные и так далее. С ростом числа пользователей и обилия передаваемой информации, сокращение объёма передачи данных приносит колоссальную экономию ресурсов и одновременно увеличивает производительность систем. WebSocket существует уже достаточно длительное время, за этот период разработчики придумали массу способов работы с этим протоколом даже в тех ситуациях, когда браузеры клиентов вовсе его не поддерживали (Flash, Ajax). Для создания так называемых real-time веб-приложений на Python, предпочтения в таких случаях отдавали далеко не Django, а фреймворкам вроде Tornado, Twisted, построенным на асинхронных подходах (событийно-ориентированных). Но настал момент, когда используя Django можно работать с WebSocket. Виновником этого события является ещё одна батарейка для Django под названием Channels, созданная небезызвестным Andrew Godwin (к слову, автором пакета South).
Что такое Channels?
Django Channels привносит в привычную модель работы Django новый концепт, а именно ориентированность на события. Вместо оригинальной модели по типу запрос-ответ, фреймворк реагирует на ряд событий, попадающих в тот или иной канал, который "просматривается/прослушивается" обработчиками событий (проще говоря, процессами, вызывающими те или иные функции, workers). Раньше для того, чтобы изменить любой HTTP запрос "на лету", необходимо было вмешиваться в цепочку Django Middleware, сейчас же HTTP запрос от браузера это событие, попадающее в канал http.request. Достаточно "повесить" на него прослушку, тем самым изменив его поведение должным образом (немного позже я опишу этот процесс для наглядности).

Изнутри Channels это классическая очередь задач (вроде Celery), использующая Redis в качестве прослойки для коммуникации между теми кто создаёт события (producers) и теми, кто их выполняет (workers). Redis в данном случае является необязательным условием, можно написать и своё решение. Кстати, стоит отметить, что релиз Django 1.10 уже будет иметь в своей кодовой базе пакет Channels, он скорее всего попадёт в django.channels (релиз назначен на август 2016 года). Сейчас же Channels поддерживает работу с версиями Django >= 1.8.

Ввиду того, что фреймворк работает в синхронном стиле, задача по его переписыванию на асинхронный лад является практически невозможной. В связи с этим, дабы упростить процесс написания кода (к слову, код пишется всё в том же привычном синхронном стиле), а также обработку long-polling соединений, появилась необходимость разделить привычный механизм запрос-ответ на 3 уровня.
Ребят я понимаю что в целом группа для начинающих специалистов, тем не менее иногда я буду заливать контент для опытных разработчиков. Народ ну ведь в последствии это вам пригодится👌😉
В скором времени напишу вам о такой либки как celery)
Народ!😜Помогите в развитие канала расскажите о нем знакомым!👍
PyCharm - это интегрированная среда разработки для языка программирования Python, которая предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django.
Данный курс представляет собой цикл видео по работе с PyCharm.

1. Pycharm создание проекта, работа редактора
2. Pycharm панели инструментов
3. Pycharm горячие клавиши и поиск
4. Pycharm контроль версий git
5. Стилизуем Pycharm
6. Pycharm vs Postman, http запросы
7. Часто применяемые функции Pycharm

https://www.youtube.com/playlist?list=PLF-NY6ldwAWrpTuu4oqU2zYzkYmQkiQ2-
Цель этой книги – помочь вам быстро овладеть основными принципами Python независимо от уровня вашей подготовки. Прочитав эту книгу, вы получите объем знаний, достаточный для использования этого языка. ⤵️
Не так давно была статья о Pandas, небольшая шпаргалочка для этой библиотеки. Сохраняем💾😉
Вы знали, что одним из языков разработки Instagram является Python?!

Подробное описание можно посмотреть здесь:
https://www.instagram.com/developer/libraries/

А вот страница на GitHub с исходниками:
https://github.com/facebookarchive/python-instagram
Доброго времени суток😎
Есть вопрос?
Пиши не стесняйся!😉

@Lodhel
3 самых важных сферы применения Python: возможности языка
Если вы собираетесь изучать Python или совсем недавно начали его учить, вы точно задумывались, что же можно на нем сделать.

https://proglib.io/p/python-applications/
Оператор switch-case – это мощная функция программирования, которая позволяет управлять потоком вашей программы на основе значения переменной или выражения. Вы можете использовать его для выполнения различных блоков кода, в зависимости от значения переменной во время выполнения.

https://www.kverner.ru/kak-realizovat-operator-switch-case-v-python/
Уважаемые питонисты! Вы самые лучшие! Расскажите о канале друзьям!👍

'''Больше народа == больше контента'''
👌
Рейтинг ребят!) Ничего не поделаешь, Питон есть Питон😎
Модули

Модуль можно импортировать в другую программу, чтобы использовать функции из него. Модуль sys содержит функции, относящиеся к интерпретатору Python и его среде, то есть к системе. Python ищет модули в каталогах, перечисленных в переменной sys.path. Если модуль найден, выполняются команды в теле модуля, и он становится доступным.

Доступ к переменной argv в модуле sys предоставляется при помощи точки, т.е. sys.argv. Это явно показывает, что это имя является частью модуля sys. Переменная sys.argv является списком строк. Она содержит список аргументов командной строки, т.е. аргументов, переданных программе из командной строки. Имя запускаемого сценария (или программы на языке Python) всегда является первым аргументом в списке sys.argv.

sys.path содержит список имён каталогов, откуда импортируются модули. Первая строка в sys.path пуста; эта пустая строка показывает, что текущий каталог (в котором была запущена программа) также является частью sys.path. Это означает, что модули, расположенные в текущем каталоге, можно импортировать напрямую. В противном случае придётся поместить свой модуль в один из каталогов, перечисленных в sys.path.
Математический трюк😁