Задать вопрос
  • Как отправлять почту Python без использования сторонних SMTP?

    ValdikSS
    @ValdikSS
    Вы можете использовать системный mail transfer agent вызовом через subprocess (обычно это команда sendmail), передавая ему содержимое письма. Если на сервере настроен полноценный MTA, то sendmail отправит письмо напрямую, без сторонних SMTP-серверов.
    Формировать письмо можно с помощью стандартной библиотеки email.
    Ответ написан
    1 комментарий
  • Как проверить данные перед записью в mongoDB?

    black1277
    @black1277
    Вольный стрелок
    MongoDB предлагает возможность валидировать данные перед их записью в базу данных с помощью так называемой схемной валидации (schema validation). Валидация схемы позволяет вам создавать правила для ваших полей, такие как разрешенные типы данных и диапазон значений.
    Чтобы использовать схемную валидацию, вы можете использовать параметр validator при создании новой коллекции или при изменении существующей. Пример использования выглядит следующим образом:
    db.createCollection("myCollection", {
       validator: {
          $jsonSchema: {
             bsonType: "object",
             required: ["name", "age"],
             properties: {
                name: {
                   bsonType: "string",
                   description: "must be a string and is required"
                },
                age: {
                   bsonType: "int",
                   minimum: 0,
                   description: "must be an integer greater than 0 and is required"
                }
             }
          }
       }
    });

    В этом примере при попытке добавления в коллекцию документа, поля name и age проверяются на соответствие указанным типам и условиям. Если документ не соответствует заданным критериям, MongoDB не допустит запись и вернет ошибку.
    Чтобы применить валидационные правила к существующей коллекции, можно использовать команду collMod с параметром validationAction:
    db.runCommand({
       collMod: "myCollection",
       validator: {
          // ... детали валидационного json схемы ...
       },
       validationLevel: "moderate",
       validationAction: "error"
    });

    validationLevel может быть "off", "moderate" или "strict". При уровне "moderate" правила применяются только к новым документам и документам, которые уже соответствуют правилам. Уровень "strict" применит правила ко всем операциям вставки и изменения.
    validationAction может быть "warn" или "error". При выборе "warn" невалидные документы всё равно будут добавлены в коллекцию, но в журнале будет предупреждение. При выборе "error" операции, которые нарушают правила валидации, будут отклоняты.
    Ответ написан
    Комментировать
  • Как правильно построить архитектуру проекта в django rest framework?

    @Realmixer
    Full stack Python (Django) web-developer
    Используйте ModelSerializer для моделей и ViewSet для действий над ними.
    Ответ написан
    Комментировать
  • Почему postgres не считает null уникальным значением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если смотреть на проблему с точки зрения теории множеств - то использовать null - это так себе идея.
    Ведь в данном контексте пустое поле входит в состав ключевых. Атрибуты - да. Могут быть пустыми и не
    заполненными пользователем. Но ключи с пустотами вызывают еще больше вопросов если у вас
    будет задача ссылочной целосности например.
    Ответ написан
    2 комментария
  • Почему postgres не считает null уникальным значением?

    Fragster
    @Fragster
    помогло? отметь решением!
    Это фича (и не только postgres). Поступить - поменять индекс, сделав его не UNIQUE, а UNIQUE NULLS NOT DISTINCT
    (и да, эта фича доступна только в постгре 15. для более ранних версий нужно хранить в этом поле не NULL, а, например, 0 (но тут есть свои нюансы с foreign keys))
    Ответ написан
    4 комментария
  • Как убедиться что сжатые изображения является продуктами исходного?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну... сжатая картинка сохраняет стационоарными некоторые свойства. Например палитра. Цветовые кривые.
    Если не сильно сжимать то и некоторые частотыне свойства сохраняются. Вот. Персептуальный хеш.
    Это такое 8х8 черно белая матрица. Тоже идентичная для оригинала и для скейлинга. На habr.com была
    хорошая статья про эти виды хешей.

    Но честно я-бы такое вообще не делал. Больше
    холивара чем практической пользы.
    Ответ написан
    3 комментария
  • Как создать сессию в Django rest framework?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    а тут что не так?
    https://www.django-rest-framework.org/api-guide/au...

    без бд надо? ну sqlite значит

    норм же не виноваты что пых сессии в tmp пихает (до сих пор???)
    Ответ написан
    4 комментария