Как стать автором
Обновить
19
-2
Oleg Belov @bgelov

Системный инженер

Отправить сообщение

Хорошо. Похоже немного на то, как это выглядело у Cisco Email Security Appliance.

Не претендую на профессионала Django, но может быть проблема в отсутствии makemigrations перед выполнением migrate?

python3 manage.py makemigrations
и потом уже
python3 manage.py migrate

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

И момент с секретами. Показать использование .venv, Django-environ.

SECRET_KEY = 'verysecretkey'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

Оф. документация на djangoproject как раз даёт ответ на этот вопрос, в своём обучающем курсе по созданию приложения polls.

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

да вот до сих пор в черновиках лежит… Вроде как и надо выложить, а вроде как уже на эту тему так много написано
О, помню спам того времени с маской *.s@sberbank.ru, ещё нескольких банков и да, nalog.ru.
Искоренил не красиво, но эффективно, работая с *.s@ для всех затронутых доменов. У нормальных отправителей не встречалось такое именование.
Опечаточка. Вот так:

$computername = $i.name
if (test-connection $computername) {
$sumreacheblepc++
if (test-path "\\$computername\C$\Program Files (x86)\Google\Chrome\Application\chrome.exe") {$sumchrome++}
}
Знаете, можно было бы написать проще и универсальнее. Вы заново придумали функционал стандартных командлетов.

$error.Clear() #очищаем буфер ошибок Powershell
$erroractionpreference = «silentlycontinue» #подавляем вывод ошибок в консоль
$dnsresult = 0
$computername = $i.name #извлекаем имя станции
$dnsresult = [System.Net.Dns]::resolve("$computername")

if (!$error) #условие, если предыдущая команда не была завершена ошибкой
{
$ipaddress = $dnsresult.AddressList
$pingfunc = (New-Object system.net.networkinformation.ping).send("$ipaddress") #ping
if ($pingfunc.Status -eq «success»)
{
$sumreacheblepc++ #плюсуем обще количество доступных станций
$chrome = dir \\$ipaddress\C$\Program Files (x86)\Google\Chrome\Application\chrome.exe #проверка наличия Chrome
If ($chrome -ne $null) {write-host «Host $computername is reachable, use Chrome, and have ip $ipaddress»

$sumchrome++ #плюсуем количество станций с Chrome
}


Я бы использовал test-connection и test-path. Код сокращается в разы. Выйдет как-то вот так:

$computername = $i.name
if (test-connection ) {
$sumreacheblepc++
if (test-path "\\$computername\C$\Program Files (x86)\Google\Chrome\Application\chrome.exe") {$sumchrome++}
}


Опять же, обратите внимание, что код получается не универсальным. У вас всё подогнано под 64 битную винду, где хром стоит 32 битный.
Для универсальности, тогда уж лучше получить установленное ПО через WMI, смотреть, есть ли в установленных программах Chrome.

И ещё, для кода в статье есть тег source. Так как сейчас, в таких «success» кавычках, powershell код не выполнит.
events.techdays.ru/AppDay/2014-11/ — вот здесь есть
Называется «Кросс-платформенная разработка для iOS, Android и Windows»
И почему первая переменная использует функцию, остальные просто текстом?
@{Name=«IPAddress»;Expression={$_.IPAddress.get(0)}}, MACAddress, Description

Можно получить и просто свойство IPAddress, которое является массивом ip-адресов.
Если на сетевой плате включен протокол ipv6, то класс нам будет возвращать и его. Получим на выводе что-то вроде: {192.168.1.9, fe80::1542:4928:111d:d13a}
А так как нам вероятнее всего нужен будет только ipv4, мы поэтому и обращаемся к методу get и получаем первый элемент: $_.IPAddress.get(0)

@{Name=«IPAddress»;Expression={$_.IPAddress.get(0)}}

У нас идёт выборка Select и вот этой записью мы добавляем в неё свой столбец с названием IPAddress и в него для каждого элемента записываем результат выполнения метода get

Информация

В рейтинге
Не участвует
Откуда
Buenos Aires, Аргентина
Зарегистрирован
Активность