Хотите продолжать использовать Windows 7 после 2020 года?

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

Однако, поскольку многие люди — и компании — все еще используют или собираются купить windows 7 недорого (несколько дней назад мы сообщили, что Windows 7 действительно набирает пользователей), это может оставить многих людей в затруднительное положение, поэтому в конце прошлого года Microsoft объявила, что предлагать расширенные обновления безопасности для Windows 7 за небольшую плату.

Теперь выяснилось, кто будет иметь право на эти расширенные обновления безопасности (ESU) и сколько они будут стоить.

  • Как подготовиться к окончанию срока службы Windows 7
  • Microsoft прекращает поддержку Windows 7
  • Проблемы с Центром обновления Windows и Microsoft Store продолжаются

 

Стоимость поддержки

Microsoft, по-видимому, раскрыла, сколько будут стоить эти обновления, и они будут доступны для клиентов Enterprise и Microsoft 365, которые могут покупать расширенные обновления безопасности Windows 7 для каждого устройства.

Эти обновления предназначены для компаний, которые не могут перейти на Windows 10 до окончания срока службы Windows 7, и предназначены только для предоставления поддержки, пока предприятия готовятся к переходу.

Цена высока, и с годами стоимость растет. Таким образом, для поддержки пользователей Windows Enterprise, использующих Windows 7, в течение первого года после даты окончания срока службы (январь 2020 г. — январь 2021 г.) стоимость составляет 25 долларов США.

Эта сумма возрастает до 50 долларов за устройство на второй год (январь 2021 — январь 2022 года) и до 100 долларов на третий год (с января 2022 по январь 2023 года). Похоже, что на данный момент Microsoft надеется, что к 2023 году использование Windows 7 будет достаточно небольшим, чтобы прекратить предлагать расширенные обновления безопасности.

Поскольку это стоимость одного устройства, компании с большим количеством компьютеров под управлением Windows 7 скоро обнаружат, что это очень дорого.

Если они используют Windows 7 Pro, то эти цены еще выше: 50 долларов за поддержку в первый год, 100 долларов за второй год и 200 долларов на третий год.

Если вы не являетесь бизнес-пользователем, который хочет продолжать использовать Windows 7, теоретически вы можете зарегистрироваться в качестве корпоративного пользователя, поскольку для Windows 7 ESU не требуется минимальной покупки, но мы бы не рекомендовали это.

Гораздо дешевле — и проще — попрощаться с Windows 7 и вместо этого перейти на Windows 10.



2021-02-15T15:03:21
Microsoft

Использование UUID в Python

В Python есть библиотека с именем UUID (универсальный уникальный идентификатор) для генерации случайного объекта длиной 128 бит. Эта библиотека генерирует уникальные идентификаторы на основе системного времени и сетевого адреса компьютера. Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как создание уникального случайного идентификатора, MAC-адреса на основе идентификатора, криптографических значений хеш-функции или случайных документов. Из этой статьи Вы узнаете, как создавать различные типы библиотек UUID, используя разные функции UUID.

 

Пример 1: Создание UUID на основе системного времени и MAC-адреса

В следующем примере показано использование функции  uuid1() модуля UUID для генерации различных значений UUID и читать и печатать различные значения свойств объекта UUID. Объект UID определяется путем вызова метода uuid1() для генерации уникального идентификатора на основе системного времени и MAC-адреса. Затем печатаются нормально сгенерированный идентификатор, соответствующее значение в байтах, целочисленное значение и шестнадцатеричное значение идентификатора. Затем в следующей части сценария печатаются свойства версии, полей, узла и времени идентификатора.

#!/usr/bin/env python3



# Импорт модуля uuid 

import uuid



# Создание случайного идентификатора с помощью uuid1()

UID = uuid.uuid1()



# Распечатать нормальный идентификатор

print("Нормальное значение:", UID)

# Распечатать байтовый идентификатор

print("Значение байта:", repr(UID.bytes))

# Распечатать целочисленный идентификатор

print("Целое число value:", UID.int)

# Распечатать шестнадцатеричный идентификатор

print(" Шестнадцатеричное значение:", UID.hex)



# Распечатать номер версии

print("Версия:", UID.version)

# Распечатать значения полей

print("Поля:", UID.fields)

# Распечатать значение MAC в шестнадцатеричном формате

print("Значение узла:", hex(UID.node))

# Распечатать значение времени

print(" Значение времени:", UID.time)

Выход

Вывод показывает, что значение идентификатора по умолчанию было сгенерировано в шестнадцатеричном формате путем разделения отдельных частей дефисом. Последняя часть значения идентификатора содержит MAC-адрес, который всегда будет одинаковым. Свойство узла объекта ID содержит MAC-адрес.

 

Пример 2: Создание значений SHA-1 и MD5 имени хоста с помощью uuid3() и uuid5()

Важное использование UUID — создание криптографических хеш-значений. Функции uuid3() и uuid5() модуля UUID используются для генерации MD5 и SHA-1 значения. В следующем сценарии переменная кортежа с именем hosts объявляется с тремя допустимыми URL-адресами. Значения кортежа повторяются с использованием цикла for. Затем значения MD5 и SHA-1 каждого URL-адреса вычисляются и печатаются на каждой итерации цикла.

#!/usr/bin/env python3

# Импорт модуля uuid

import uuid



# Определение кортежа из трех имен хостов 

hosts = ('www.andreyex.ru', 'www.google.com', 'zavod-gornica.ru')



# Итерировать значения кортежа, используя цикл

for hostname in hosts:

# Распечатать имя хоста

print("Hostname:", hostname)

# Используйте uuid5(), чтобы получить значение SHA-1

print('t Значение SHA-1:', uuid.uuid5(uuid.NAMESPACE_DNS, hostname))

# Используйте uuid3() для получения значения MD5

print('t Значение MD5:', uuid.Uuid3(uuid.NAMESPACE_DNS, hostname))

Пример 3: создание случайных чисел с помощью uuid4()

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

#!/usr/bin/env python3



# Импорт модуля uuid

import uuid

# Инициализируем переменную

i = 1

# Повторяем цикл пять раз,

while(i<6):

# Сгенерируем случайное число

print("No-", i, ' ', uuid.uuid4())

# Увеличиваем значение на единицу

i = i + 1

 

Выход

Если вы запустите сценарий несколько раз, он будет генерировать разные UUID в разное время.

 

Пример 4: Создание отсортированного UUID из списка с помощью объекта UUID

В следующем сценарии показано, как преобразовать элементы списка в UUID и распечатать значения после сортировки. Здесь переменная list_ids объявляется с четырьмя элементами списка, где каждое значение элемента должно быть в допустимом формате UUID.Сначала печатаются исходные значения list_ids. Затем каждое значение элемента списка преобразуется в UUID с помощью цикла в блоке try. Если list_ids содержит какое-либо значение элемента, которое не соответствует формату UUID, будет сгенерировано исключение ValueError и будет напечатано сообщение об ошибке. Если во время преобразования ошибок не возникает, то преобразованные UUID сортируются с помощью метода sort(). Затем с помощью цикла for распечатываются отсортированные значения UUID.

#!/usr/bin/env python3

# Импорт модуля uuid

import uuid



# Создаем список идентификаторов допустимого формата

list_Ids = [

'a4f8dd97-c8be-345b-239e-8a68e6abf800',

'673a5eaa-56c6-aaaa-bc4567-4536cd,

'dcbbaa88-5bf1-11dd-ab48-990ab200d674',

'4567aabb-89ad-77ab-67ad-aaaccdd904ae'

]



# Распечатать значения списка с помощью цикла

print(' n Значения списка:')

for val in list_Ids:

print(val)



# Значения списка будут преобразованы в uuid и отсортированы

try:

  uuids = [ uuid.UUID(s) for s in list_Ids ]

  uuids.sort()

print(' n Значения отсортированных uuids:')

  for val in uuids:

    print (val)



except ValueError:

# Распечатать сообщение об ошибке, если какое-либо значение списка находится в недопустимом формате

print('Плохо сформированный шестнадцатеричный UUID')

 

Выход

В выводе появится все элементы в списке имеют правильный формат UUID. Таким образом, ValueError генерироваться не будет. Первая часть вывода напечатала исходные элементы списка, а вторая часть вывода напечатала отсортированные значения UUID.

 

Вывод

Вам может потребоваться сгенерировать UUID в Python для различных целей программирования. В этой статье показано, как сгенерировать различные UUID с помощью различных методов. После прочтения этой статьи и практики включенных примеров вы сможете создавать UUID в соответствии с вашими потребностями в программировании.



2021-02-15T13:52:07
Python

MongoDB против MySQL: какую базу данных использовать

MySQL — это реляционная база данных, которая существует уже некоторое время. Но с учетом требований разнообразия и масштабируемости MongoDB стала популярной. Оба предлагают высокую производительность и аналогичные функции.

В этом руководстве мы рассмотрим основы MySQL и MongoDB, а затем расскажем о различиях между ними и о том, что вы должны использовать для различных случаев использования.

Что такое MongoDB?

MongoDB, разработанная в 2007 году, представляет собой популярную систему управления нереляционными базами данных (СУБД) NoSQL, в которой для хранения данных используются документы вместо таблиц или строк. Эта модель данных позволяет манипулировать связанными данными за одну операцию с базой данных.

Документы MongoDM — это документы и файлы, подобные JSON, и они поддерживают JavaScript (JS). Поля документа могут различаться, что упрощает изменение структуры с течением времени.

MongoDB считается schema-less, поскольку для нее не требуется заранее заданная схема базы данных. MongoDB использует гибкие пары ключ-значение, называемые документами, для хранения данных.

Поскольку MongoDB не содержит схемы, вам не нужно определять фиксированную структуру. Разработчикам легко использовать и изучать его, то есть его могут использовать как администраторы, так и разработчики. Он поддерживает все основные языки программирования и операционные системы, включая Mac, Linux и Windows.

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

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

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

Ограничения MongoDB

  • MongoDB не поддерживает объединения, поэтому в зависимости от того, как вы хотите получить доступ к данным, вам, возможно, придется регулярно обновлять свои документы.
  • Она может потреблять много памяти из-за пар ключ-значение, которые могут привести к избыточности данных.
  • Документы имеют лимит 16 МБ.
  • Поскольку ACID не соблюдается строго, сложные транзакции могут усложняться.

    MongoDB не поддерживает хранимые процедуры, поэтому вы не можете реализовать бизнес-логику на уровне базы данных.

Что такое MySQL?

MySQL — это система управления реляционными базами данных (СУБД) с открытым исходным кодом, которая хранит данные в таблицах и строках. Он использует SQL (язык структурированных запросов) для передачи данных и доступа к ним. Операции JOIN упрощают запросы и корреляцию. Он следует архитектуре клиент-сервер и поддерживает многопоточность.

С момента создания базы данных MySQL у нее есть огромное сообщество, обширное тестирование и стабильность. Он доступен для всех основных платформ вместе с коннекторами для многих языков, включая C, Java, C ++, Python и PHP.

Общие варианты использования MySQL:

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

Ограничения MySQL

Ограничения MySQL такие же, как и у любой другой СУБД, включая:

  • Поскольку данные хранятся в таблицах, если у вас есть данные, которые не помещаются ни в одну из таблиц, вам придется изменить структуру своей базы данных, чтобы приспособить ее.
  • База данных должна быть распределена по нескольким серверам, что может оказаться трудным в управлении.
  • MySQL становится менее эффективной, когда дело касается больших баз данных из-за проблем с масштабированием.
  • MySQL подвержен атакам с использованием SQL-инъекций.

Различия между MongoDB и MySQL

В этом разделе мы рассмотрим некоторые из основных различий между MongoDB и MySQL.

Представление данных

MongoDB представляет данные как документы JSON, тогда как MySQL представляет данные в строках и таблицах.

В MongoDB это будет выглядеть следующим образом:

{ 

    First Name: 'John',

    Last Name: 'Doe', 

    Employee_ID: 1234, 

    Status: 'Active'

}

Встраивание данных

MySQL не предлагает никаких вариантов для вложения или встраивания данных. Вы можете использовать JOIN, но они могут привести к увеличению размера таблиц с ненужными полями. Соединения также могут быть трудоемкими и требовательными к производительности.

MongoDB позволяет вставлять связанные данные. У вас также есть возможность ссылаться на данные из другого документа, если вы чувствуете, что документ может слишком сильно увеличиться. Пример включает:

{

    id: 13,

    name: ‘John Doe’,

    age: 23,

    address: {

        City: 'New Jersey,

        Street: 'London',

        Zip_code: 9876

    }

}

Язык запроса

MySQL использует SQL, тогда как MongoDB использует MQL, язык запросов MongoDB. В этом разделе мы сравним некоторые общие операции с базой данных в таблице Employee.

Выбор данных в MySQL

select * from employee;

Вставка данных в MySQL

INSERT INTO employee (employee_id, department, status)

VALUES (12, 'Sales', 'Active');

Обновление данных в MySQL

UPDATE employee SET department = 'Finance' WHERE employee_id = 14;

Выбор данных в MongoDB *

db.find.employee()

Вставка данных в MongoDB

db.employee.insert ({employee_id:'12', department.Sales', status:'Active'})

Обновление данных в MongoDB

db.employee.update({employee_id::{$eq:14}},{$set{ department:'Finance'}},{multi:true})

Оптимизация индекса

Обе базы данных используют индексы для оптимизации. Если MySQL не находит релевантного индекса для запроса, он ищет всю таблицу.

MongoDB просматривает каждый документ в коллекции, если нет индексов.

Развертывание базы данных

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

Скорость и производительность

Поскольку MongoDB — это база данных NoSQL, она быстрее MySQL.

Группировка данных

MongoDB хранит документы, принадлежащие одному классу или группе в коллекции. MySQL хранит строки похожих типов в таблице.

Кластеризация/репликация

MySQL поддерживает репликацию master-slave и master-master, позволяя воспроизводить данные из нескольких основных баз данных параллельно. MongoDB, с другой стороны, поддерживает встроенное сегментирование, репликацию и автоматические выборы.

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

Безопасность

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

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

Масштабируемость

MySQL масштабируется по вертикали, что означает, что вы можете увеличить нагрузку на один сервер, увеличив ОЗУ или характеристики ЦП. MongoDB масштабируется по горизонтали, то есть вы можете создать кластер MongoDB с несколькими серверами, добавив больше серверов в свою базу данных.

Поддержка и документация

MySQL предлагает пожизненную поддержку на трех уровнях:

  • Premier: от 1 до 5 лет.
  • Extended: 6-8 лет.
  • Sustain: от 9 лет.

Для каждого уровня он предлагает круглосуточную техническую поддержку, а также доступ к патчам, исправлениям ошибок, выпускам обслуживания и обновлениям. Документация MySQL поддерживается корпорацией Oracle.

MongoDB предлагает поддержку корпоративного уровня. Это дает вам возможность обновлять версии в удобном для вас темпе. Документация MongoDB поддерживается MongoDB, Inc.

Когда использовать MongoDB или MySQL

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

MySQL — хороший выбор, если:

  • Вы только начали свой бизнес, и ваша база данных мало масштабируется.
  • Ваша структура данных не будет меняться долгое время, или у вас есть фиксированная схема.
  • У вас высокая скорость транзакций.
  • Безопасность данных — ваш главный приоритет.
  • Вам нужна лучшая поддержка. MySQL существует уже давно, поэтому найти решения распространенных проблем намного проще.

MySQL — хороший выбор, если вы работаете с устаревшим приложением, которое требует многострочных транзакций и имеет структурированные данные с четкой схемой.

MongoDB — хороший выбор, если:

  • Вам нужна высокая доступность данных наряду с автоматическим и мгновенным восстановлением данных.
  • Вы работаете с нестабильной схемой и хотите снизить стоимость миграции схемы…
  • Ваши сервисы основаны на облаке.
  • Вы хотите ускорить разработку.

MongoDB может быть правильным выбором, если вы работаете с аналитикой в ​​реальном времени, мобильными приложениями, Интернетом вещей и т.д., где у вас могут быть структурированные или неструктурированные данные, которые могут быстро расти.

Что учить дальше

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

  • Соединения SQL
  • Хранимые процедуры
  • Индексирование
  • NoSQL
  • Хранилища «ключ-значение»
  • Node.js драйверы



2021-02-15T10:17:51
Вопросы читателей

Что означает OEM?

OEM или производитель оригинального оборудования — термин, который чаще всего встречается в двух отраслях: автомобилестроении и ИТ. Первоначально это было связано с компанией, производившей продукт, который затем перепродавался или переименовывался в другую компанию. Однако значение этого термина со временем изменилось, и сегодня оно относится к разным вещам. Например, OEM может ссылаться на компанию, которая производит фактические компоненты, используемые другой компанией для построения всей системы. В других случаях компания производит ребрендинг продуктов другой компании и продает их конечным пользователям.

OEM также связан с индустрией программного обеспечения. Когда компании-производители ПК, такие как Dell и HP, создают ПК, они предоставляют операционную систему конечному пользователю. Эта ОС не разработана производителем оборудования, а является продуктом другой компании, допустим компании Microsoft. В этом случае Microsoft называется OEM , а ПК продается как Dell или HP.

 

Каким образом производится изготовление, партнерство и перепродажа продукции производителя оригинального оборудования?

Перед тем, как предоставить решение конечным пользователям, компании придумывают лучший способ удовлетворить потребности клиентов. Они оценивают несколько вариантов, например: покупать, производить, строить или сотрудничать с кем-то для разработки решения. Сотрудничая с производителями оригинального оборудования, организация может свести к минимуму инвестиции в производство и сократить производственные и материальные затраты, приобретая опыт в разработке продуктов, а также сокращая жизненный цикл продукта. Концентрируясь на своей основной компетенции, организации по-прежнему могут создавать продукты, используя лучшие в своем классе компоненты.

OEM-производители не делают ничего лишнего для продукта, а некоторые только маркируют продукт своим логотипом. Другие OEM-производители поставляют только компоненты и ничего не продают под своим брендом. Однако многие компании делают и то, и другое. Вы также можете приобрести эти продукты напрямую у компании.

 

OEM в программном обеспечении

Тот же принцип применим к программному обеспечению. Например, производители оригинального оборудования, такие как HP, Dell и Samsung, покупают Windows в качестве OEM-программного обеспечения у Microsoft, а затем упаковывают его вместе с ПК или ноутбуком, которые они производят.

Продажа лицензионных ключей к ПО http://oem-soft.biz, низкие цены, индивидуальный подход.

Компании, которые производят другие устройства, такие как принтеры, сканеры и цифровые камеры, также покупают программное обеспечение OEM. Когда вы покупаете эти устройства, вы заметите, что они обычно идут в комплекте с сопутствующим приложением. Это программное обеспечение OEM.

Как и OEM-оборудование, некоторые OEM-программы можно приобрести как отдельный продукт, и, как и OEM-оборудование, они обычно намного дешевле. Но есть и недостатки. Часто нет техподдержки или руководства пользователя. Когда вы покупаете эти OEM-продукты, знайте, что это будет сложно, если вы столкнетесь с техническими проблемами. Конечно, если вы действительно знаете, что делаете, это не должно быть проблемой.

 

OEM в оборудовании

В индустрии аппаратного обеспечения производитель оригинального оборудования (OEM) обычно относится к компании, которая создает продукт, предназначенный для конечных пользователей, например ПК, ноутбук или принтер. Apple, HP, Dell, Canon и Brother — все это примеры производителей оригинального оборудования.

OEM-оборудование, с другой стороны, — это термин, обозначающий детали, из которых состоят упомянутые выше продукты. Сюда входят процессоры, вентиляторы, материнские платы, микросхемы памяти, жесткие диски и многое другое. Компании, которые производят эти компоненты, обычно продают их OEM-производителям как OEM-оборудование.

Хотя процессоры, материнские платы и т. Д. Также могут быть проданы частным лицам как розничные продукты, OEM-оборудование обычно дешевле, чем их розничные аналоги. Но есть некоторые компромиссы. OEM-оборудование редко поставляется с поддержкой клиентов, имеет очень короткие (если таковые имеются) гарантийные периоды и обычно не имеет некоторых деталей, необходимых для объединения его с другими компонентами любой системы, которую вы создаете. Например, у DVD-приводов могут отсутствовать кабели или ленты для подключения к материнской плате.

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

 

Почему эти товары дешевле?

Продукция OEM обычно дешевле благодаря экономии на масштабе. Поскольку компания сотрудничает с другими для производства товаров в больших количествах, как цена, так и время производства значительно сокращаются. Однако вам необходимо проверить, что вы получаете, когда покупаете продукт у OEM. Хотя продукты дешевле и обладают такими же функциями и производительностью, вы можете не получить некоторые «дополнительные услуги», такие как техническая поддержка, которую обычно выполняет компания, производящая ПК.

 

Чем отличаются OEM и Aftermarket?

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

С другой стороны, вторичный рынок — это оборудование, товар или продукт, произведенный другой компанией, которые потребители могут использовать в качестве замены. Следовательно, можно сказать, что OEM и Aftermarket — противоположности друг другу.

Например, если компания ABC поставляет микросхемы микрокомпьютеров компании-изготовителю компьютеров DEF, то ABC является OEM-компанией. С другой стороны, если ABC продает микрокомпьютерные микросхемы, аналогичные тем, которые производит DEF, то ABC является компанией вторичного рынка. Послепродажные товары обычно дешевле и удобнее.



2021-02-14T23:38:20
Программное обеспечение

Создайте приложение PyQt на примере

PyQt — очень полезная библиотека Python, используемая для разработки графических приложений. Он использует среду Qt GUI Python, разработанную с использованием языка C++. Графический пользовательский интерфейс приложения может быть разработан путем импорта библиотеки PyQt в скрипт Python или с помощью модуля Qt Designer в PyQt. Если вы не хотите писать код для реализации графического интерфейса приложения, то лучше установить Qt Designer и создать с его помощью графический интерфейс пользователя. В этой статье шаг за шагом показан способ создания приложения PyQt на Python.

 

Создайте простое приложение PyQt для добавления:

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

Шаги:

Шаг 1. Создайте объект приложения PyQt

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

Модули QApplication, QMainWindow, QLabel, QTextEdit и QPushButton потребуются для разработки приложения.

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

# Импортировать необходимые модули

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QTextEdit, QPushButton

 

Добавьте следующие строки, чтобы создать объект приложения и запустить цикл обработки событий. Теперь после выполнения скрипта ничего не появится.

# Создать объект PyQt application

app = QApplication([])

# Запустить цикл событий для выполнения приложения

app.exec()

Шаг 2. Создайте класс и оконный объект

Создайте класс для добавления необходимых объектов на этом шаге для разработки окна приложения.

Добавьте следующие строки, чтобы создать класс с оконным объектом. Здесь задаются заголовок, размер и положение окна. Затем вызывается метод show() для отображения окна в качестве вывода.

class addition(QMainWindow):

def __init__(self):

# Вызвать родительский конструктор

super().__init__()

# Установить заголовок окна

self.setWindowTitle("Приложение добавления PyQt")

# Установить ширину и высоту окна

self.resize(350, 200)

# Сдвинуть положение окна

self.move(800, 400)

# Отображение окна

self.show()




 

Вы должны создать объект класса перед запуском цикла событий.

# Создание оконного объекта

window = add()

 

Следующее пустое окно появится после выполнения сценария.

 

Шаг 3: Добавьте необходимые виджеты в окно для добавления

Теперь добавьте необходимые объекты, необходимые для реализации приложения. На этом шаге создаются три объекта виджета QLabel, два объекта виджета QTextEdit и объект кнопки виджета QPushButton.Первые два объекта метки будут использоваться для предоставления текста помощи перед текстовыми полями. Объекты QTextEdit будут использоваться для получения от пользователя двух числовых значений. Будет создан объект QPushButton для вычисления суммы входных чисел с использованием функции обработчика событий, которая будет создана на следующем шаге. Последний объект метки будет использоваться для отображения суммы двух чисел. Здесь функция setGeometry () вызывается для каждого объекта, чтобы установить положение объекта в окне.

# Создать метку для первого номера

self.lbl1 = QLabel('Номер 1', self)

self.lbl1.setGeometry(80, 20, 80, 50)

# Создать текстовое поле для первого числа

self.textbox1 = QTextEdit(self)

self.textbox1.setGeometry(80, 60, 70, 30) 

# Создать метку для второго номера

self.lbl2 = QLabel('Номер 2', self)

self.lbl2.setGeometry(200, 20, 80, 50)

# Создать текстовое поле для второго числа

self.textbox2 = QTextEdit(self)

self.textbox2.setGeometry(200, 60, 70, 30)



# Создать кнопку для расчета суммы

self.submit = QPushButton('Вычислить сумму ', self)

self.submit.setGeometry(80, 100, 190, 30)

# Создать метку для отображения результата суммирования

self.lblResult = QLabel('', self)

self.lblResult.setGeometry(80, 130, 200, 50)




 

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

 

Шаг 4. Создайте и вызовите функцию для обработки события нажатия кнопки.

Создайте метод с именем onClicked () со следующими строками внутри класса добавления для обработки события нажатия кнопки. Значения текстовых полей преобразуются в целые числа , используя Int () функцию и хранятся в num1 и num2 переменные. Далее, сумма num1 и num2 сохраняются в результате переменной. Значения num1, num2 и результирующих переменных преобразуются в значения строк с использованием ул () функцию, перед сохранением значения в выходной Переменная. Третий объект метки используется для отображения содержимого выходной переменной.

def onClicked(self):



num1 = int(self.textbox1.toPlainText())

num2 = int(self.textbox2.toPlainText())

result = num1 + num2

output = "<p style = 'color: blue'> Сумма из " + str(num1)+ " и " + str(num2)+"is" + str(result)+ '</p>'

self.lblResult.setText(output)




 

Добавьте следующие строки в класс после объекта кнопки для вызова метода onClicked() при нажатии кнопки.

# Вызов функции при нажатии кнопки

self.submit.clicked.connect(self.onClicked)

 

Если после выполнения сценария пользователь ввел 12 и 18 в текстовые поля и нажал кнопку «Вычислить сумму», под кнопкой появится следующий форматированный вывод.

 

Вывод :

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



2021-02-14T12:05:04
Python

Proxmox. Где лежат образы виртуальных машин?

Если Вы здесь, значит у Вас возник вопрос: “Где лежат образы виртуальных машин в Proxmox”.




Привожу пример скриншота Proxmox 6.2:







На скрине видно что подключено три хранилища, а также путь где располагаются все файлы для ваших VM.




  • Первое хранилище и путь /mnt/vl0 – это путь, который я создал сам и примонтировал в систему.



  • Второе хранилище и путь /var/lib/vz – это путь по умолчанию созданный при установке Proxmox.




В данной директория находится директория images. В ней и лежат наши образы .raw виртуальных машин.




  • Третье хранилище…. с ним не так все просто. Чтобы посмотреть в нем примонтированные диски выполним в терминале команду:




sudo lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'




Вывод в моем случае будет следующий:




dm-0 lv0
dm-1 swap
dm-2 root
dm-5 data
dm-8 vm-100-disk-0
dm-7 vm-101-disk-0
dm-9 vm-102-disk-0
dm-10 vm-103-disk-0
dm-11 vm-108-disk-0




RSS




2021-02-13T23:50:30
Proxmox