Задать вопрос
Профиль пользователя заблокирован сроком с 1 апреля 2025 г. и навсегда по причине: подозрительная активность
  • А можно ли создать скрипт, который добавить в html письмо что отследить папки пападания?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Почтовые клиенты принципиально не поддерживают javascript, так как это офигенная дыра в безопасности пользователя. Более того, приличные почтовые клиенты по умолчанию даже картинки с внешних ресурсов не скачивают, не то что скрипты.
    Ответ написан
    5 комментариев
  • Как балансировать трафик между двумя провайдерами в двух объединенных ЛВС?

    @Drno
    Метите(маркируете) трафф приходящий на определенный порт или с определенной подсети
    далее в routes указываете в какой шлюз ему идти
    Ответ написан
    Комментировать
  • Как сменить формат большому количеству файлов?

    @alexalexes
    1. Открыть командную строку.
    2. С помощью команд смены диска, смены каталога выбрать текущий каталог, в котором нужно произвести переименование.
    3. Запустить команду:
    FOR /R %f IN (*.bin) DO REN "%f" *.exe
    которая переименует все файлы в текущем каталоге, в том числе и во вложенных тоже.
    Ответ написан
    Комментировать
  • Как сменить формат большому количеству файлов?

    @stavfz
    Открываем командную строку например написав в поиске меню пуск cmd
    переходим в нужную нам директорию с помощью команды
    cd C:\НАША_ПАПКА
    Нажимаем Enter
    если вы уверенны что находитесь там где нужно вводим следующую колманду
    rename *.bin *.exe
    ну и как бы всё
    Ответ написан
    1 комментарий
  • Возможно ли реализовать запрет скачивания сайта через Flask?

    Vindicar
    @Vindicar
    RTFM!
    Отключить сайт.

    Ты можешь прибегать к разным хитростям, конечно.
    - проверка User-Agent и Referer.
    - проверка на исполнение скриптов
    - browser fingerprinting, т.е. попытка выяснить, что за браузер у клиента по его особенностям реализации

    Но в конечном итоге это будет гонка "кто лучше знает поведение реального браузера". Гонка скорее всего закончится, когда потенциальный скрапер будет дёргать твой сайт селениумом.

    Можешь попробовать зайти с другой стороны, конечно, и требовать двухфакторную авторизацию для входа. Но и это автоматизируется, а вот пользователей отпугнёшь.
    Ответ написан
    Комментировать
  • Возможно ли реализовать запрет скачивания сайта через Flask?

    deepblack
    @deepblack
    все что может загрузить браузер - можно сказать уже скачано.
    Папку с сайтом? Что имеется ввиду: исходники на Python? Так при правильной настройке вебсервера они и так недоступны.
    html - он же для того и предназначен чтобы его качали.

    Если нужно, можно ограничить доступ некоторым useragent, таких образом отвалятся самые ленивые.
    Ответ написан
    Комментировать
  • Почему не записываются данные в бд SQLITE?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    После запросов, выполняющих изменения в БД, надо вызывать
    self.connection.commit()

    И имена колонок и таблиц нельзя брать в одинарные кавычки. Потому что в одинарных кавычках пишутся строки.
    И если даже иногда sqlite и смотрит сквозь пальцы на такую ошибку (когда она может понять по контексту, что имеется в виду), это не значит, что так будет везти всегда.
    Строка 'money' никогда не будет равна числу.
    Ответ написан
    8 комментариев
  • Как создать приложение на JavaScript с расписанием школьных уроков на 7 дней?

    Ankhena
    @Ankhena
    Нежно люблю верстку
    Разбейте задачу на этапы. Чем мельче, тем лучше. Отметьте те, которые можете решить (с помощью гугла, этого сервиса и т.д.). Те, которые совсем не можете - делегируйте.

    Это получается Понедельник это одна страница, а Вторник другая или как?

    Тут, наверное, нужно посмотреть как это сделано у других, благо таких приложений полно. И решить как оно должно быть у вас. Мы-то точно не знаем :)

    Дальше потихоньку решайте эти мелкие задачки.

    p.s. глядишь, пока это сделаете, всё и пройдёт и найдете приложение себе по вкусу.
    Ответ написан
    Комментировать
  • Как использовать в запросе результат выполнения процедуры?

    tsklab
    @tsklab Автор вопроса, куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Нужно использовать временную таблицу:
    CREATE OR ALTER PROCEDURE EncyclNewPageGroup
    AS
      DECLARE @Temp TABLE( Alpha VARCHAR(100), [Path] VARCHAR(100), IDFrom INT, IDTo INT)
      INSERT INTO @Temp EXECUTE EncyclNewPage
      SELECT DISTINCT [Path], IDFrom, IDTo FROM @Temp WHERE NOT IDFrom IS NULL ORDER BY 1
    --
    GO
    Ответ написан
    Комментировать
  • Как правильно подобрать комплектующие?

    @Drno
    Куллер на ЦП - башенный, 120мм
    блок питания - thermaltek с КПД от Bronze
    корпус - 1 куллер на вдув 1 на выдув, этого хватит. по 120мм
    Ответ написан
    6 комментариев
  • Как сконструировать класс в Python, содержащий подкласс Meta с "опциями"?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Надо понимать, что у Django "под капотом" много сложной логики и класс Meta - один из инструментов, предназначенный для того, чтобы упростить программисту, использующему django, работу.
    Собственно, если вы не делаете еще один "инструмент" или не пишите большой проект в команде, то задумайтесь - а нужно ли тратить много времени на переусложнение конструкции ради того чтобы в паре мест немного сократить время разработки?
    Касательно вопроса - ко вложенным классам можно обращаться через self. Далее, как говориться:
    Без ТЗ - результат ХЗ

    Для чего этот класс, что за Field и т.д.
    Да и даже с этой инфой это слишком комплексный вопрос, чтобы можно было нормально ответить в рамках вопроса.
    Ответ написан
    Комментировать
  • Почему не работает код?

    @o5a
    "Работает". Только
    def log_into_steam(self):
            pass

    Функция запускается, просто ничего не делает - все, как запрограммировали.

    Учитывайте правильно отступы. Методы класса должны находиться внутри класса (по отступам), а не абы как.

    Плюс ко всему, метод инициализации пишется с двойным подчеркиванием - __init__
    Ответ написан
    Комментировать
  • Какие бывают запрещающие символы при создании файла?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    В Django есть slugify

    Есть еще вот такой вариант:
    "".join(x for x in s if x.isalnum())

    А так винда сама подсказывает:
    62f54f97bd5c5963993478.jpeg
    Ответ написан
    Комментировать
  • Зачем требовать достоверную личную информацию в регистрации Хабра?

    gluck59
    @gluck59
    Виртуальный глюк
    Во-1 любой ресурс c UGC хочет обезопасить собственый зад, если юзер начнет писать всякое.
    Во-2 данные с привязанными и проверенными документами можно продать многократно дороже.
    Ответ написан
    4 комментария
  • Ошибка RuntimeError: can't start new thread на Python (MacBook Pro M1 2020 ОЗУ 8 Гб) как настроить или обойти?

    ScriptKiddo
    @ScriptKiddo
    Попробуйте выставить параметр threads в False, чтобы грузить в один поток или числом укажите нужное количество потоков. Например: 10
    yf.download(tickers = nasdaq_tickers, period = 'max', interval = '1d', group_by = 'ticker', threads=False)
    yf.download(tickers = nasdaq_tickers, period = 'max', interval = '1d', group_by = 'ticker', threads=10)
    Ответ написан
    6 комментариев
  • Как спрятать приложения и переписки?

    Adamos
    @Adamos
    Проблема не решается техническими средствами. Стоит пообщаться с мамой, чтобы прекратить практику "руки на стену, телефон на стол". Возможно, для этого придется взяться за голову самому.
    Маму, если она адекватна, отнюдь не должно волновать, сколько у вас на телефоне порнухи и прочих шалостей, если, конечно, вам уже исполнилось хотя бы 12 лет.
    Ее беспокоит возможность вовлечения вас в наркобизнес, провокаторские группы, разводы лохов - ну, и прочая педофилия из телевизионных страшилок. Если она будет верить вам на слово, что вы сами знакомы с этими опасностями и избегаете их - может, и телефон шмонать не понадобится?
    Ну, а если вы трудный подросток и предпочитаете им оставаться - правильно мама делает, и ни компромиссов, ни решений, которые вас устроят, тут не будет.
    Ответ написан
    Комментировать
  • Почему не копируется список внутри класса?

    Vindicar
    @Vindicar
    RTFM!
    Запомни одну простую вещь: переменная в питоне - это просто ссылка, ярлык!
    Покажу на примере:
    a = [1, 2, 3]  # а содержит ссылку на некий список
    b = a  # b содержит ссылку на тот же список!
    print(b is a)  # True. b - это тот же объект, что и a
    a.append(4)  # Ссылка а не меняется, меняется объект по этой ссылке!
    print(a)  # [1, 2, 3, 4]
    print(b)  # [1, 2, 3, 4] так как b ссылается на то же, что и a
    a = [1, 2]  # теперь a хранит ссылку на другой объект-список!
    print(b is a)  # False. Даже если бы содержимое списков совпало, это два разных объекта.
    print(a)  # [1, 2]
    print(b)  # [1, 2, 3, 4] так как b хранит ссылку на старый список
    a.append(5)
    print(a)  # [1, 2, 5] изменили объект, на который ссылается a
    print(b)  # [1, 2, 3, 4] b ссылается на другой объект, он остался не изменён.


    Соответственно, у твоей проблемы есть четыре разных решения.
    1. Делай копию тогда, когда она тебе понадобится (т.е. тогда, когда в исходном списке уже лежат нужные значения). Не полагайся на то, что две доступные извне переменные всегда будут указывать на один и тот же список.
    2а. Не заменяй список на другой. Если ты хочешь заменить именно содержимое списка, а не заменять один объект-список на другой, можно написать так: a[:] = [1, 2, 3, 4] Для надёжности можешь этот список показать как read-only property вместо обычного поля класса - тогда можно будет модифицировать объект списка (добавлять/удалять элементы), но нельзя будет заменить список на другой.
    2б. Покажи наружу список как read-write property, при записи в property записывай список в обе переменные.
    3. Добавь в класс методы для управления элементами списка, сам список наружу не показывай.
    Ответ написан
    3 комментария
  • Почему список lambda выражений возвращает одинаковые числа?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Все сгенерированные лямбды используют ссылку на переменную из включения. К моменту, их вызова включение уже завершило свою работу и x имеет значение последней итерации - 2. Чтобы избежать такого поведения, нужно замкнуть значение переменной: l1 = [lambda x=x: x for x in range(3)]
    Ответ написан
    1 комментарий
  • TypeError: Boom() takes no arguments ПОЧЕМУ?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что __init__, а не __int__.
    Ответ написан
    Комментировать