Оф. документация на djangoproject как раз даёт ответ на этот вопрос, в своём обучающем курсе по созданию приложения polls.
Насколько помню, они за универсальные приложения, которые можно переносить на другие проекты. Хранение всех файлов в папке приложения позволяет достичь этого.
О, помню спам того времени с маской *.s@sberbank.ru, ещё нескольких банков и да, nalog.ru.
Искоренил не красиво, но эффективно, работая с *.s@ для всех затронутых доменов. У нормальных отправителей не встречалось такое именование.
Знаете, можно было бы написать проще и универсальнее. Вы заново придумали функционал стандартных командлетов.
$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 код не выполнит.
И почему первая переменная использует функцию, остальные просто текстом?
@{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)
У нас идёт выборка Select и вот этой записью мы добавляем в неё свой столбец с названием IPAddress и в него для каждого элемента записываем результат выполнения метода get
Хорошо. Похоже немного на то, как это выглядело у Cisco Email Security Appliance.
Не претендую на профессионала Django, но может быть проблема в отсутствии makemigrations перед выполнением migrate?
python3 manage.py makemigrations
и потом уже
python3 manage.py migrate
Надо бы сразу учить не использовать пользователя root в конфигурациях... Да и на сервере под ним работать начинающим не очень.
И момент с секретами. Показать использование .venv, Django-environ.
Оф. документация на djangoproject как раз даёт ответ на этот вопрос, в своём обучающем курсе по созданию приложения polls.
Насколько помню, они за универсальные приложения, которые можно переносить на другие проекты. Хранение всех файлов в папке приложения позволяет достичь этого.
https://habr.com/ru/articles/737642/
Вот, пожалуйста :)
Искоренил не красиво, но эффективно, работая с *.s@ для всех затронутых доменов. У нормальных отправителей не встречалось такое именование.
Я бы использовал test-connection и test-path. Код сокращается в разы. Выйдет как-то вот так:
Опять же, обратите внимание, что код получается не универсальным. У вас всё подогнано под 64 битную винду, где хром стоит 32 битный.
Для универсальности, тогда уж лучше получить установленное ПО через WMI, смотреть, есть ли в установленных программах Chrome.
И ещё, для кода в статье есть тег source. Так как сейчас, в таких «success» кавычках, powershell код не выполнит.
Называется «Кросс-платформенная разработка для iOS, Android и Windows»
Можно получить и просто свойство IPAddress, которое является массивом ip-адресов.
Если на сетевой плате включен протокол ipv6, то класс нам будет возвращать и его. Получим на выводе что-то вроде: {192.168.1.9, fe80::1542:4928:111d:d13a}
А так как нам вероятнее всего нужен будет только ipv4, мы поэтому и обращаемся к методу get и получаем первый элемент: $_.IPAddress.get(0)
У нас идёт выборка Select и вот этой записью мы добавляем в неё свой столбец с названием IPAddress и в него для каждого элемента записываем результат выполнения метода get