Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

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

Все теги (29)

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

Все ответы (90)
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    @Jack444
    Вообще на самом деле джанго можно сделать аля-микросервисным если рассматривать каждое приложение как отдельный микросервис.
    В Джанго можно подключить для любой модели отдельную базу данных которая может находится на отдельном сервере или другом порту.
    Всё что требуется добавить в модель следующие:
    class MyModel(Model):
        class Meta:
            using = 'default'  # дефолтная база из DATABASES из settings.py

    Использование отдельных баз данных это дело одно, но вам скорее всего хотелось бы чтобы каждое приложение работало на отдельном порту, это тоже не проблема, в каждом приложении создайте systemd.service который запустит экземляр на другом порту и делайте жесткую ссылку в systemd/system, после через nginx проксируйте по location на порт приложения.
    Чисто так технически можно перенести экземпляры на разные серверы и поправить конфиги.
    Важно чтобы секретный ключ был один и тот же везде, иначе будет много проблем, по безопасности всё ок если не раскрывать его третьим лицам.
    Как вариант секретный ключ и другие данные можно хранить в .env и подгружать их в settings.py.
    Если хотите сохранить чистоту коду, то экземляры можно раскидать по папкам, в каждой из них набросать по минималке README.txt с инфой на каком порту запущено, какие команды для остановки и перезапуска, какие паки нельзя трогать а какие можно, можно только ту в которой висит приложение а все остальные папки которые не взаимодействуют из этого приложения можно снести.

    В общем какой-то такой вариант можно реализовать, но я бы рекомендовал оставить как есть и по возможности старые сервисы переписывать на микросервисы FastAPI а новые эндпоинты сразу пилить на нём.
    Ответ написан
    Комментировать
  • Как поместить весь цикл в одну переменную?

    @Jack444
    Если у тебя простой цикл то сделай это в одну строку.
    x = [i for i in a]
    Если помудренней то вы дели переменну и туда накидывай значения.
    x = []
    for i in a:
        match i,
            case 'X': x.append(i)

    также и словари вместо списков можно использовать
    Ответ написан
    1 комментарий
  • Как поменять кодировку базы данных с 'latin-1' на 'utf-8'?

    @Jack444
    Надо на чистом сервере апгрейдить ОС и после устанавливать постгре. Скорее всего в системе по дефолту latin-1 стоит и utf-8 локалы не установлены.
    Отправьте в терминал такую команду
    localectl status
    Покажет локализацию устройства, если заканчивается на .UTF-8 то всё ок.
    Если нет то пробуйте обновить.
    update-locale LANG=ru_RU.UTF-8
    Если выходит ошибка invalid locale settings то обновите всю ОС
    В убунту/дебиан такая команда
    apt upgrade
    В процессе апргрейда появится окошко с выбором кодировок, выберите любых несколько которые оканчиваются на .UTF-8

    затем идёте в постгре
    sudo -i -u postgres psql
    и отправьте такую команду
    UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8');
    Ответ написан
    2 комментария
  • Как отказаться от велосипеда?

    @Jack444
    Не понятно что делают у тебя все эти функции, но код можно сократить так.

    def main(token):
        result = []
        funcs = (binance, bybit, huobi, mexc, kucoin, gate)
        for func in funcs:
            if call := func(token):
                result.append(call)
        result = '\n'.join(result)
        print(result)
    Ответ написан
    Комментировать
  • Как исправить ошибку из-за знака рубля?

    @Jack444
    Я прочекал у меня всё ок, но могу посоветовать в ручную декодировать может поможет.

    import requests
    from bs4 import BeautifulSoup
    
    r = requests.get("https://astrachan.roliksushi.ru/catalog/sety/")
    text = r.content.decode('utf-8')
    print(text)
    Ответ написан
    Комментировать