Что за программа pony

Проект Pony ORM — это еще один пакет реляционных объектов для Python. Они позволяют запрашивать базу данных с использованием генераторов. У них также есть онлайн-редактор диаграмм ER, который должен помочь вам создать модель. Это также один из немногих пакетов Python, которые я видел со схемой мульти-лицензирования, где вы можете разрабатывать с использованием лицензии GNU или приобретать лицензию для работы без открытого исходного кода. Смотрите их сайт для получения дополнительной информации.

В этой статье мы потратим некоторое время на изучение основ этого пакета.

Начиная

Поскольку этот проект не входит в состав Python, вам необходимо скачать и установить его. Если у вас есть пункт, то вы можете просто сделать это:

pip install pony

В противном случае вам придется скачать исходный код и установить его через скрипт setup.py .

Создание базы данных

Три примера работы с SQL базой данных в Python — Pony ORM (бонус)

К заметкам про работу с базой данных из sqlite3, sqlalchemy.Table и sqlalchemy.orm решил добавить и заметку про Pony ORM — крутую, но несколько эзотерическую ORM для Python.

My Little Pony: Дружба — это чудо Интуиция Пинки | MLP FIM по-русски

  • Работа через адаптер sqlite3.
  • Взаимодействие через sqlalchemy.Table.
  • Использование sqlalchemy.orm для тех же задач.
  • Бонусом — PonyORM!

Хочется сконцентрироваться на различиях и преимуществах, которые дают те или иные подходы.

Сразу обозначу условную задачу, которую будем решать: нужно создать программу / набор функций, позволяющих хранить и администрировать ссылки на фотографии и метки (теги) на эти фотографии.

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

Изображение Python 3.11. Что нового?

Работа с SQL базой данных в Python через Pony ORM

Опять же, sqlite3 и sqlalchemy.Table заставляют программиста писать логику запросов исходя из синтаксиса SQL, при этом создание запросов выносится в какой-то дополнительный уровень абстракции. То есть, чтобы изолировать логику работы с базой данных от основного кода с бизнес-логикой, нам потребуется ещё одна логическая единица (модуль, класс, или же набор функций).

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

Что же мы имеем при работе с PonyORM ? Здесь нечто «посередине». Можем делать ORM как в sqlalchemy.orm, а можем делать питоняшную магию, которая будет преобразована в запросы. И раз уж это «пони» — «дружбо-магию».

И для начала определим модели данных:

Чем опасен Pony Creator? | Халтура на ютубе


from pony import orm db = orm.Database() class User(db.Entity): auto=True) name = orm.Required(str) photos = orm.Set(‘Photo’) age = orm.Required(int) class Photo(db.Entity): auto=True) url = orm.Required(str) owner = orm.Required(User) tags = orm.Set(‘Tag’) class Tag(db.Entity): auto=True) name = orm.Required(str) photos = orm.Set(Photo) db.bind(provider=’sqlite’, filename=’example.db’, create_db=True) db.generate_mapping(create_tables=True) orm.set_sql_debug(True)

Как видите, код по структуре похож на sqlalchemy.orm , однако, менее многословен.

Также при описании типов данных мы во многом полагаемся на Python типы данных. Даже связь фотографий и пользователей мы делаем через orm.Set , который во многом повторяет интерфейс типа множества, встроенного в Python. Однако, это лишь начало, ведь в запросах раскроется ещё больше питоняшности и дружбо-магии:

Читайте также:
Программа booking что это такое

И если до этого мы создавали сессию как контекстный менеджер, в этом случае мы используем для этого декоратор. Мы также могли это сделать в виде контекстного менеджера:

with orm.db_session: def fill_data(): u1 = User(name=’Alice’, age=17) u2 = User(name=’Bob’, age=18) .

но в этот раз давайте исходить из того, что функция — это отдельное атомарное действие, поэтому используем декоратор. Запросы к базе данных, как можно заметить, мы делаем не через session.query , а в более привычном виде: вот создали пользователей, вот фотографии.

Единственное, всё также стоит не забывать про orm.commit() / orm.rollback() .

Пользователей мы привязали к фотографиям при создании. И сделали запрос на получение фотографий пользователя u1 .

print(orm.select(p.url for p in Photo if p.owner == u1)[:10])

При чём, заметьте, на сколько питоняшно это сделано — мы передали orm.select Python-генератор, по которому Pony построил запрос. И при получении среза (слайса) [:10] PonyORM выполнит этот запрос со здвигом 0, лимитом 10.

А фотографии по пользователю u2 мы вообще получаем из кеша PonyORM. Если бы мы не только что его создали, то есть кеш был бы непрогрет, то это был бы ещё один SQL-запрос:

print([p.url for p in u2.photos])

Теперь пример со связью многие-ко-многим, аналогичный предыдущим из примеров sqlite3 , sqlalchemy :

Всё также — работаем в рамках сессии, что поднимается для вызова функции. Создадим метки для фотографий. Теперь пробежимся по существующим фотографиям:

for p in orm.select(x for x in Photo): .

то есть по запросу можно и итерироваться как по обычному генератору (что также очень в стиле Python).

И для каждого нечётного тега добавим 2 тега, а для чётного — только 1. Никакой логики, лишь для простоты наполнения базы данных связями тегов и фотографий.

Также заметьте, что добавление происходит как и с обычным питоновским множеством — через .add .

Далее — запрос на получение всех фотографий, отмеченных указанным тегом:

print(orm.select(p.url for p in Photo if t1 in p.tags)[:])

«Под капотом» всё также произойдёт LEFT JOIN , но посмотрите — на сколько об этом нет ни намёка. Лишь Python-код.

print(orm.select((p.url, len(p.tags.id)) for p in Photo if len(p.tags) > 1)[:])

Опять же, на чистом Python мы делаем запрос на фотографии, у которых более 1 метки. В итоге — HAVING COUNT , о котором нет ни слова.

В общем, очень любопытная ORM с точки зрения Python дзен!

  • Работа через адаптер sqlite3.
  • Взаимодействие через sqlalchemy.Table.
  • Использование sqlalchemy.orm для тех же задач.
  • Бонусом — PonyORM!

Источник: 900913.ru

Pony (вирус)

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

Как пишет «Коммерсантъ» со ссылкой на компанию Check Point Software Technologies, в сентябре 2019 года с окончанием периода отпусков в России активизировалась вредоносная программа под названием Pony, которая заняла второе место по количеству инцидентов. Она распространяется по электронной почте через вредоносные файлы с расширением .exe в письмах, имитирующих бухгалтерские запросы.

Российские компании атакуют вирусы под видом бухгалтерских документов

Темы и названия подобных писем назывались примерно так: «Закрывающие документы вторник» и «Документы сентябрь». Pony способна похищать учетные данные пользователей, отслеживать системные и сетевые операции, устанавливать дополнительные вредоносные программы и превращать устройства в ботнет.

Читайте также:
Rus что это за программа

Чтобы защититься от Pony и подобных вирусов, эксперты советуют воспользоваться самым простым и эффективным способом — активировать контентную фильтрацию в настройках почты. В частности, необходимо отключить возможность передачи файлов, требующих установки. [1]

Смотрите также

Контроль и блокировки сайтов

  • Цензура в интернете. Мировой опыт
  • Цензура (контроль) в интернете. Опыт Китая, Компьютерная группа реагирования на чрезвычайные ситуации Китая (CERT)
  • Цензура (контроль) в интернете. Опыт России, Политика Роскомнадзора по контролю интернета, ГРЧЦ
  • Запросы силовиков на телефонные и банковские данные в России
  • Закон о регулировании Рунета
  • Национальная система фильтрации интернет-трафика (НаСФИТ)
  • Как обойти интернет-цензуру дома и в офисе: 5 простых способов
  • Блокировка сайтов в России
  • Ревизор — система контроля блокировки сайтов в России

Анонимность

  • Даркнет (теневой интернет, DarkNet)
  • VPN и приватность (анонимность, анонимайзеры)
  • VPN — Виртуальные частные сети
  • СОРМ (Система оперативно-розыскных мероприятий)
  • Государственная система обнаружения, предупреждения и ликвидации последствий компьютерных атак (ГосСОПКА)
  • Ястреб-М Статистика телефонных разговоров

Критическая инфраструктура

  • Цифровая экономика России
  • Электронное правительство России
  • Информационная безопасность цифровой экономики России
  • Защита критической информационной инфраструктуры России
  • Закон О безопасности критической информационной инфраструктуры Российской Федерации
  • Основы государственной политики РФ в области международной информационной безопасности
  • Доктрина информационной безопасности России
  • Стратегия национальной безопасности России
  • Соглашение стран СНГ в борьбе с преступлениями в сфере информационных технологий
  • Автономный интернет в России
  • Киберполигон России для обучения информационной безопасности
  • Национальная биометрическая платформа (НБП)
  • Единая биометрическая система (ЕБС) данных клиентов банков
  • Биометрическая идентификация (рынок России)
  • Каталог решений и проектов биометрии
  • Единая сеть передачи данных (ЕСПД) для госорганов (Russian State Network, RSNet)
  • Статья:Единая система программной документации (ЕСПД).
  • Сеть передачи данных органов государственной власти (СПДОВ)
  • Единая сеть электросвязи РФ
  • Единый портал государственных услуг (ФГИС ЕПГУ)
  • Гособлако — Государственная единая облачная платформа (ГЕОП)
  • Госвеб Единая платформа интернет-порталов органов государственной власти

Импортозамещение

  • Импортозамещение в сфере информационной безопасности
  • Обзор: Импортозамещение информационных технологий в России
  • Главные проблемы и препятствия импортозамещения ИТ в России
  • Преимущества замещения иностранных ИТ-решений отечественными
  • Основные риски импортозамещения ИТ
  • Импортозамещение информационных технологий: 5 «За» и 5 «Против»
  • Как импортозамещение ИТ сказалось на бизнесе иностранных вендоров? Взгляд из России
  • Как запуск реестра отечественного ПО повлиял на бизнес российских вендоров
  • Какие изменения происходят на российском ИТ-рынке под влиянием импортозамещения
  • Оценки перспектив импортозамещения в госсекторе участниками рынка

Информационная безопасность и киберпреступность

  • Киберпреступность в мире
  • Требования NIST
  • Глобальный индекс кибербезопасности
  • Кибервойны, Кибервойна России и США, Кибервойна России и Великобритании, Кибервойна России и Украины
  • Locked Shields (киберучения НАТО)
  • Киберпреступность и киберконфликты : Россия, Кибервойска РФ, ФСБ, Национальный координационный центр по компьютерным инцидентам (НКЦКИ), Центр информационной безопасности (ЦИБ) ФСБ, Следственный комитет при прокуратуре РФ, Управление К БСТМ МВД России, МВД РФ, Министерство обороны РФ, Росгвардия, ФинЦЕРТ
  • Число киберпреступлений в России, Русские хакеры
  • Киберпреступность и киберконфликты : Украина, Киберцентр UA30, Национальные кибервойска Украины
  • Национальный центр по защите данных системы здравоохранения Норвегии (HelseCERT)
  • CERT NZ
  • CERT-UZ Отдел технической безопасности в структуре государственного унитарного Центра UZINFOCOM
  • Киберпреступность и киберконфликты : США, Пентагон, ЦРУ, АНБ, NSA Cybersecurity Directorate, ФБР, Киберкомандование США (US Cybercom), Министерства обороны США, NATO, Department of Homeland Security, Cybersecurity and Infrastructure Security Agency (CISA)
  • Информационная безопасность в США
  • Как США шпионили за производством микросхем в СССР
  • Киберпреступность и киберконфликты : Европа, ENISA, ANSSI, Joint Cyber Unit, National Cyber Force
  • Стратегия кибербезопасности ЕС
  • Регулирование интернета в странах Евросоюза
  • Информационная безопасность в Германии
  • Информационная безопасность во Франции
  • Информационная безопасность в Греции
  • Информационная безопасность в Австралии
  • Tactical Edge Networking (военный интернет)
  • Киберпреступность и киберконфликты : Израиль
  • Киберпреступность и киберконфликты : Иран
  • Киберпреступность и киберконфликты : Китай
  • Информационная безопасность в Китае
  • Импортозамещение информационных технологий в Китае
  • Киберпреступность и киберконфликты : КНДР
  • Информационная безопасность в Молдавии
  • Безопасность в интернете
  • Безопасность интернет-сайтов
  • Безопасность программного обеспечения (ПО)
  • Безопасность веб-приложений
  • Безопасность мессенджерах
  • Угрозы безопасности общения в мобильной сети
  • Безопасность в социальных сетях
  • Киберзапугивание (кибербуллинг, киберсталкинг)
  • Информационная безопасность в банках
  • Информационная безопасность в судах
  • CERT-GIB Computer Emergency Response Team — Group-IB
  • Мошенничество с банковскими картами
  • Взлом банкоматов
  • Обзор: ИТ в банках 2016
  • Политика ЦБ в сфере защиты информации (кибербезопасности)
  • Потери организаций от киберпреступности
  • Потери банков от киберпреступности
  • Тренды развития ИТ в страховании (киберстрахование)
  • Кибератаки
  • Threat intelligence TI киберразведка
  • Число кибератак в России и в мире
  • Кибератаки на автомобили
  • Обзор: Безопасность информационных систем
  • Информационная безопасность
  • Информационная безопасность в компании
  • Информационная безопасность в медицине
  • Информационная безопасность в электронной коммерции
  • Информационная безопасность в ритейле
  • Информационная безопасность (мировой рынок)
  • Информационная безопасность (рынок России)
  • Информационная безопасность на Украине
  • Информационная безопасность в Белоруссии
  • Главные тенденции в защите информации
  • ПО для защиты информации (мировой рынок)
  • ПО для защиты информации (рынок России)
  • Pentesting (пентестинг)
  • ИБ — Средства шифрования
  • Криптография
  • Управление инцидентами безопасности: проблемы и их решения
  • Системы аутентификации
  • Коррупция (мошенничество, взятки): Россия и мир
  • Отмывание денег (Money Muling)
  • Закон о персональных данных №152-ФЗ
  • Защита персональных данных в Евросоюзе и США
  • Расценки пользовательских данных на рынке киберпреступников
  • Буткит (Bootkit)
  • Уязвимости в ПО и оборудовании
  • Джекпоттинг_(Jackpotting)
  • Вирус-вымогатель (шифровальщик), Ramsomware, WannaCry, Petya/ExPetr/GoldenEye, CovidLock, Ragnar Locker, Ryuk, EvilQuest Вредонос-вымогатель для MacOS, Ransomware of Things (RoT), RegretLocker, Pay2Key, DoppelPaymer, Conti, DemonWare (вирус-вымогатель), Maui (вирус-вымогатель), LockBit (вирус-вымогатель)
  • Защита от программ-вымогателей: существует ли она?
  • Big Brother (вредоносная программа)
  • MrbMiner (вирус-майнер)
  • Защита от вирусов-вымогателей (шифровальщиков)
  • Вредоносная программа (зловред)
  • APT — Таргетированные или целевые атаки
  • Исследование TAdviser и Microsoft: 39% российских СМБ-компаний столкнулись с целенаправленными кибератаками
  • DDoS и DeOS
  • Атаки на DNS-сервера
  • DoS-атаки на сети доставки контента, CDN Content Delivery Network
  • Как защититься от DDoS-атаки. TADетали
  • Визуальная защита информации — Визуальное хакерство — Подглядывание
  • Ханипоты (ловушки для хакеров)
  • Руткит (Rootkit)
  • Fraud Detection System (fraud, фрод, система обнаружения мошенничества)
  • Каталог Антифрод-решений и проектов
  • Как выбрать антифрод-систему для банка? TADетали
  • Security Information and Event Management (SIEM)
  • Threat intelligence (TI) — Киберразведка
  • Каталог SIEM-решений и проектов
  • Чем полезна SIEM-система и как её внедрить?
  • Для чего нужна система SIEM и как её внедрить TADетали
  • Системы обнаружения и предотвращения вторжений
  • Отражения локальных угроз (HIPS)
  • Защита конфиденциальной информации от внутренних угроз (IPC)
  • Спуфинг (spoofing) — кибератака
  • Фишинг, Фишинг в России, DMARC, SMTP
  • Сталкерское ПО (программы-шпионы)
  • Троян, Trojan Source (кибератака)
  • БотнетБоты, TeamTNT (ботнет), Meris (ботнет)
  • Backdoor
  • ЧервиStuxnetReginConficker
  • EternalBlue
  • Рынок безопасности АСУ ТП
  • Флуд (Flood)
  • Предотвращения утечек информации (DLP)
  • Скимминг (шимминг)
  • Спам, Мошенничество с электронной почтой
  • Социальная инженерия
  • Телефонное мошенничество
  • Звуковые атаки
  • Warshipping (кибератака Военный корабль)
  • Антиспам программные решения
  • Классические файловые вирусы
  • Антивирусы
  • ИБ : средства защиты
  • Система резервного копирования
  • Система резервного копирования (технологии)
  • Система резервного копирования (безопасность)
  • Межсетевые экраны
  • Системы видеонаблюдения
  • Видеоаналитика
Читайте также:
Программа рамзес что это

Источник: www.tadviser.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru