Size: a a a

2019 March 04
Kangaroo
источник
2019 March 05
Kangaroo
Стек протоколов TCP/IP — это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.
источник
Kangaroo
Модель TCP/IP

Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.
источник
Kangaroo
Модель OSI и TCP/IP
источник
Kangaroo
В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:
источник
Kangaroo
Самый нижний, уровень сетевых интерфейсов, обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.

Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.

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

Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.
источник
2019 March 07
Kangaroo
JSON — текстовый формат обмена данными, основанный на JavaScript.

Несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.

В python это библиотека json
источник
2019 March 08
Kangaroo
​​​​Fluent Python
Автор: Лучано Рамальо

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

#книгадня

Скачать книгу:
https://t.me/progbook/2488
источник
2019 March 10
Kangaroo
JSON (JavaScript Object Notation) - простой формат обмена данными, основанный на подмножестве синтаксиса JavaScript. Модуль json позволяет кодировать и декодировать данные в удобном формате.

Кодирование основных объектов Python:

>>>
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>> print(json.dumps('\u1234'))
"\u1234"
>>> print(json.dumps('\\'))
"\\"
>>> print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
{"a": 0, "b": 0, "c": 0}
Компактное кодирование:

>>>
>>> import json
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'
Красивый вывод:

>>>
>>> import json
>>> print(json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4))
{
   "4": 5,
   "6": 7
}
Декодирование (парсинг) JSON:

>>>
>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads('"\\"foo\\bar"')
'"foo\x08ar'
Основы
json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, kw) - сериализует obj как форматированный JSON поток в fp.

Если skipkeys = True, то ключи словаря не базового типа (str, unicode, int, long, float, bool, None) будут проигнорированы, вместо того, чтобы вызывать исключение TypeError.

Если ensure_ascii = True, все не-ASCII символы в выводе будут экранированы последовательностями \uXXXX, и результатом будет строка, содержащая только ASCII символы. Если ensure_ascii = False, строки запишутся как есть.

Если check_circular = False, то проверка циклических ссылок будет пропущена, а такие ссылки будут вызывать OverflowError.

Если allow_nan = False, при попытке сериализовать значение с запятой, выходящее за допустимые пределы, будет вызываться ValueError (nan, inf, -inf) в строгом соответствии со спецификацией JSON, вместо того, чтобы использовать эквиваленты из JavaScript (NaN, Infinity, -Infinity).

Если indent является неотрицательным числом, то массивы и объекты в JSON будут выводиться с этим уровнем отступа. Если уровень отступа 0, отрицательный или "", то вместо этого будут просто использоваться новые строки. Значение по умолчанию None отражает наиболее компактное представление. Если indent - строка, то она и будет использоваться в качестве отступа.

Если sort_keys = True, то ключи выводимого словаря будут отсортированы.

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False,
kw) - сериализует obj в строку JSON-формата.

Аргументы имеют то же значение, что и для dump().
источник
Kangaroo
Ключи в парах ключ/значение в JSON всегда являются строками. Когда словарь конвертируется в JSON, все ключи словаря преобразовываются в строки. В результате этого, если словарь сначала преобразовать в JSON, а потом обратно в словарь, то можно не получить словарь, идентичный исходному. Другими словами, loads(dumps(x)) != x, если x имеет нестроковые ключи.
источник
2019 March 11
Kangaroo
#codeexample

Несмотря на то, что язык программирования Python с динамической типизацией, бывают случаи, когда нужно проверить тип элемента:

<type> = type(<el>) # <class 'int'> / <class 'str'> / ...
from numbers import Integral, Rational, Real, Complex, Number
<bool> = isinstance(<el>, Number)
источник
2019 March 12
Kangaroo
Django содержит “диспетчер сигналов”, который позволяет одним приложениям фреймворка получать уведомления от других после того, как в последних произойдут некоторые события. Вкратце, сигналы позволяют определенным отправителям уведомлять некоторый набор получателей о совершении действий. Сигналы особенно полезны, когда поведение многих фрагментов кода зависит от инициации одних и тех же событий.

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

django.db.models.signals.pre_save & django.db.models.signals.post_save
Отправляются до или после вызова метода save() модели.
django.db.models.signals.pre_delete & django.db.models.signals.post_delete
Отправляются до или после вызова метода delete() модели или delete() класса QuerySet.
django.db.models.signals.m2m_changed

Отправляются после изменения ManyToManyField в модели.
django.core.signals.request_started & django.core.signals.request_finished
Отправляются, когда Django начинает или заканчивает HTTP запрос.
Полный список этих сигналов, а также описание каждого сигнала, см. в документации по встроенным сигналам.

Вы можете также определять и посылать свои собственные сигналы.
источник
2019 March 13
Kangaroo
Не путайте их:

TCP/IP – это стек протоколов, представляющий собой основу Интернета.

Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.
источник
Kangaroo
Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

На транспортной уровне расположились TCP – протокол, обеспечивающий передачу данных с гарантией доставки, и UDP – протокол для быстрой передачи данных, но уже без гарантии.

Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.

Помните, что стек протоколов TCP/IP задает стандарты связи между устройствами и содержит соглашения о межсетевом взаимодействии и маршрутизации.
источник
Kangaroo
источник
2019 March 14
Kangaroo
М. Саммерфилд "Программирование на Python 3. Подробное руководство" (2009)
источник
2019 March 15
Kangaroo
Сегодня не будет постов

https://ru.euronews.com/2019/03/15/ru-new-zeland-shooting
источник
2019 March 16
Kangaroo
#codeexample

Python 3.5+ позволяет передавать несколько наборов
аргументов ключевого слова («kwargs») для функции в пределах одного вызова, используя синтаксис «»:

def process_data(a, b, c, d):
print(a, b, c, d)
 x = {'a': 1, 'b': 2}
y = {'c': 3, 'd': 4}


process_data(**x, **y)
# 1 2 3 4


process_data(**x, c=23, d=42)
#1 2 23 42
источник
2019 March 17
Kangaroo
Mastering Python programming isn’t just about grasping the theoreti￾cal aspects of the language. It’s just as much about understanding and
adopting the conventions and best practices used by its community.

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