Я кодер: могу закодить, а могу и закосячить!
Местоположение
Казахстан, Акмолинская обл. (Целиноградская обл.), Астана

Наибольший вклад в теги

Все теги (12)

Лучшие ответы пользователя

Все ответы (9)
  • Какие есть бесплатные сервисы для хранения данных?

    @pro100Code
    TechnoCraft Designer Developer
    Есть несколько классных сервисов для хранения данных с доступом через API. Например, попробуй Firestore от Google — там можно хранить данные в формате JSON, доступ к ним удобный через REST API. Плюс у них есть бесплатный тариф для небольших проектов. Еще вариант — Airtable, у него удобный интерфейс и тоже API для интеграции. Оба этих сервиса дают возможность долгосрочного хранения данных, а не временного, как jsonbin.io.
    Ответ написан
    2 комментария
  • Избавиться от дублей или проверить наличие таблицы в базе?

    @pro100Code
    TechnoCraft Designer Developer
    Добрый день! Проблема с миграциями и запросами действительно может возникнуть, если таблицы ещё не существуют, а запросы к ним уже происходят.
    Прямую проверку существования таблицы можно выполнить через метод django.db.connection.introspection.table_names(), который возвращает список всех таблиц базы данных. Это позволит вам избежать излишней ручной работы с соединениями и подключениями.
    from django.db import connection
    
    def options_general_exists():
        tables = connection.introspection.table_names()
        if 'yourapp_general' in tables:
            return General.objects.filter(id='-1').first()
        return None
    
    data = {
        'menu': Menu,
        'options_general': options_general_exists(),
    }


    Лучший вариант — использовать introspection API от Django для проверки существования таблиц, так как это встроенный и безопасный способ для работы с базой данных без необходимости явно подключаться к ней через Python.
    Ответ написан
    1 комментарий
  • Как правильно присваивать типы результатам выполнения функций которые вернули ошибку?

    @pro100Code
    TechnoCraft Designer Developer
    В такой ситуации, когда ты не можешь менять исходную функцию, но хочешь обрабатывать ошибки, можно сделать дополнительный слой обработки в месте, где вызывается функция. Ты можешь использовать try-catch, чтобы перехватывать исключения и обрабатывать их как ValidationError. Вот пример:

    try {
      const response = await usersPassportLogin(usersPassportLoginBody, options);
      // Успешный ответ обрабатывай как обычно
      console.log('Login successful:', response);
    } catch (error) {
      // Здесь мы проверим, является ли ошибка ValidationError
      if ((error as ValidationError).errors) {
        const validationError = error as ValidationError;
        console.log('Validation Error:', validationError.errors);
      } else {
        console.log('Unexpected Error:', error);
      }
    }
    Ответ написан
    Комментировать
  • Как проверить IP адрес отправителя своего домена в Exim?

    @pro100Code
    TechnoCraft Designer Developer
    Окей, смотри, тебе нужно настроить Exim так, чтобы он чекал IP-адреса для доменов, которые ты считаешь своими. Если домен твой, но письмо пришло с левого IP — блокируем его к чертям.

    Для этого тебе нужно создать файл /etc/exim/domainips, где пропишешь свои домены и их реальные IP-адреса, типа так:
    mydomain.com: 192.168.1.1
    anotherdomain.com: 192.168.1.2

    Теперь, в конфиге Exim (exim.conf) добавь вот такую проверку:
    acl_check_mail:
      accept  condition = ${if eq{$sender_address_domain}{+local_domains}{yes}{no}}
             condition = ${if match_ip{$sender_host_address}{lookup{$sender_address_domain}lsearch{/etc/exim/domainips}}{yes}{no}}
             message = "Чувак, IP не соответствует домену $sender_address_domain"


    Если настроишь всё так, то любой шлак с поддельных IP больше не проскочит.
    Ответ написан
    1 комментарий
  • Как сгенерировать строку из регулярного выражения на .NET?

    @pro100Code
    TechnoCraft Designer Developer
    Чтобы генерировать строки из регулярных выражений без необходимости вручную проверять их валидность, ты можешь попробовать библиотеку Fare. Она создана для таких задач и работает корректно с генерацией валидных строк по регулярным выражениям.

    используй Xeger generator = new Xeger(pattern);

    Xeger — это класс в библиотеке Fare, который генерирует строки на основе регулярного выражения без необходимости проверять их валидность.

    Таким образом, Fare избавит тебя от необходимости вручную проверять строки, и ты сразу будешь получать корректные результаты на выходе.
    Ответ написан
    6 комментариев