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

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

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

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Попробуйте добавить индекс на пару полей (plu, sku). При выборке сортируйте по ним на упровне БД.
    Используйте itertools.groupby для группировки сперва по plu, а потом и по sku.
    Обходите группировки двумя циклами (один вложен в другой).
    Внутри внутреннего цикла уже можно использовать литерал генератора списка, чтобы получить список pack_type_id.
    Это позволит сразу собирать последовательно элементы словарей и не возвращаться к уже собранным.
    Если вашу структуру нужно поместить в какой-то внешний json-файл или отдавать в тело http-запроса в json-формате, то можно попробовать писать json с помощью какой-нибудь потоковой библиотеки вроде этой: https://pypi.org/project/jsonstreams/
    Это позволит не ждать по отдельности извлечение данных из БД, сборку структуры а пвмяти, а затем сериализацию ее в файл или в поток сокета. Всё будет делаться в рамках одного конвейера, что может оказаться более эффективным по времени.

    Однако вам и ваш способ стоило бы проверить на предмет "бутылочных горлышек" и понять что именно занимает у вас основное время работы вашего алгоритма.
    Возможно радикально ускорить процедуру и не удастся ввиду очень медленной БД или гиганского размера получающейся структуры.

    Расскажите подробнее куда вам нужна такая структура, какой у нее получается объём, куда вы её потом пихаете, как измеряете скорость, почему вам так критична эта скорость?
    Может быть проблема решается и иначе? К примеру, может оказаться, что вам не требуется синхронно возвращать всю структуру, или можно запрос и ответ развести в отдельные запросы, сделав интерфейс более отзывчивым.

    В общем опишите вашу задачу подробнее. Ну и есл что наисал не понятно, спрашивайте. Буду разьяснять детальнее.
    Ответ написан
    Комментировать
  • Почему в Chrome не отображается круг, а получается квадрат?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Ну, судя по всему, у хрома давно проблемы с тенями и закруглением и это их текущая реализация - если блок маленький, то и тень будет не круглая, а со скругленными углами. Это можно увидеть если поставить промежуточное значение без анимации для вашего "круга". Из тени получится квадрат со скруглёнными углами. Если увеличивать размер круга, до хотя бы 4х пикселей по ширине и высоте, то и тень станет круглой.

    Решение я тут вижу сходу пока только одно - другая реализация.

    Накидал на ходу (не 1 в 1, но я думаю сможете подкрутить):
    Ответ написан
    8 комментариев
  • Как передать много текста на страницу и сохранить его в файл?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    У меня есть textarea в которой есть необходимый текст случайной длины ( от 0 байтов до пару мегабайтов), как можно сохранить этот текст в файл на сервере?
    Оберните формой с методом пост, по кнопке субмит все уйдет на сервер.

    1 - У меня не апаче а свой сервер (ServerSocket) на java
    Подойдет абсолютно любой вебсервер, понимающий хттп

    2 - В теле запроса никак
    Очень даже как

    3 - В ссылке ну точно никак
    Можно, но есть ограничения по длине, да и не для этого оно...

    4 - PHP нету, но обрабатывать входные данные могу даже больше чем php (полностью тело запроса могу получить)
    Любой язык на сервере, умеющий в веб, искаропки умеет читать пост/гет запросы: ява, жс, пхп, питон и еще десяток перлов с сишарпами... Читаете переменную пост запроса, вытаскиваете свой текст, пишете в файл, профит.
    Ответ написан
    Комментировать
  • Как работать с БД в Django в обычном питон файле (python script.py)?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    import os
    import django
    os.environ["DJANGO_SETTINGS_MODULE"] = 'yourproject.settings'
    django.setup()
    
    # далее импортируете и используете свои джанговские модели
    from yourapp.models import SomeModel
    Ответ написан
    2 комментария
  • Как создать собственный валидатор модели в django??

    tumbler
    @tumbler Куратор тега Django
    бекенд-разработчик на python
    >>> False == None
    False
    Ответ написан
    Комментировать
  • Как сделать такой border?

    vladchv
    @vladchv
    WordPress Developer
    Ответ написан
    Комментировать
  • Как правильно обработать urls в Джанго, чтобы ссылка работала корректно?

    deepblack
    @deepblack Куратор тега Django
    В шаблоне не правильно урл указан, должно быть примерно так:

    <a href="{% url 'url_name' news_id %}">ololo</a>

    Документация
    Ответ написан
    1 комментарий
  • Python как вывести динамический текст?

    shabelski89
    @shabelski89
    engineer
    Мне нравится библиотека tdqm , прогресс бар в 3 строки добавляется .
    https://tqdm.github.io/
    Ответ написан
    Комментировать
  • В чём отличие supervisorctl reread и update?

    miraage
    @miraage
    Старый прогер

    supervisorctl reread

    This command only updates the changes. It does not restart any of the managed applications, even if their configuration has changed. New application configurations cannot be started, neither. (See the “update” command below)



    supervisorctl update

    Restarts the applications whose configuration has changed.
    Note: After the update command, new application configurations becomes available to start, but do not start automatically until the supervisor service restarts or system reboots (even if autostart option is not disabled). In order to start new application, e.g app2, simply use the following command:
    supervisorctl start app2


    // EDIT

    Ну разжуем.)

    Поменяли код воркеров - restart.
    Поменяли конфигурацию (кол-во процессов, логи, итд) - reread (дает супервизору инфу, что поменялся конфиг) + update (перезапускаем только те воркеры, для которых поменялась конфигурация) .

    Если есть вопросы - пишите еще.
    Ответ написан
    2 комментария
  • Как удалить из строки ненужные символы при помощи re?

    0xD34F
    @0xD34F Куратор тега Регулярные выражения
    re.sub(r'(^\W+)|(\W+$)', '', text)
    Ответ написан
    2 комментария
  • Как работает crontab?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    > Можно ли поставить крон на 1 минуту
    Можно.

    > и проверять есть ли задание, для скрипта, в бд
    Можно.

    > и если есть выполнять его,
    Можно

    > а это не быстро?
    А это не вопрос.

    > В основном интересует нагрузка на сервер.
    От крона нагрузка будет несущественная. От вашего скрипта - зависит от вашего скрипта.

    > И что будет если в одно время, через крон, несколько раз обратиться к одному скрипту
    Скрипт будет выполнен несколько раз.

    > не получится, что запросы будут конфликтовать друг с другом?
    Если вы эту ситуацию обработаете в своём скрипте, то не будут. В кроне никаких встроенных механизмов для этого нет.
    Ответ написан
    Комментировать
  • Как сделать UI на Bash?

    erge
    @erge
    Примус починяю
    беглый уткопоиск дает сразу же ответ - ui на bash !
    Zenity !

    причем как выяснилось он(а) еще, и уже, установлен(а) (в Linux Mint 18.3)

    и все не просто а очень просто, вот пример окна с формой:
    zenity --forms --title="Add Friend" \
    	--text="Enter information about your friend." \
    	--separator="," \
    	--add-entry="First Name" \
    	--add-entry="Family Name" \
    	--add-entry="Email" \
    	--add-calendar="Birthday"


    zenity-forms-screenshot.png

    результат вовзращается в stdout в csv формате.

    смотрите Руководство Zenity

    UPD:

    так же есть Whiptail для текстовых пользовательских интерфейсов (TUI)
    так же уже есть в системе.

    advmenu.gif

    Bash GUI Whiptail Menu Tutorial Part 1

    А так же Glade
    см. ролики на youtube - BASH Tutorial - Advanced GUI Interface
    Ответ написан
    1 комментарий
  • Как отрпавить фото http Python?

    @aaland Автор вопроса
    Ответ лежал на поверхности, а именно вот тут

    Мой вариант выглядит вот так
    url = 'https://site.ru/upload2'
        path_img = 'grey3.jpg'
        head = {"session-key": session_key , "user-id": userid}
        files = {'uploaded_photo': open(path_img, 'rb')}
        r = requests.post(url,headers=head, files=files)
    Ответ написан
    Комментировать
  • Как корректно перенести БД на gitHub?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если нужно завести структуру и немножко базовых данных - могут помочь миграции и фикстуры.
    Если нужно залить огромную кучу данных - тогда уже проще дамп.
    Автоматизировать разворачивание можно с помощью Docker Compose.
    Ответ написан
    Комментировать
  • Как расположить элементы по кругу?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Делайте по такому принципу.
    Ответ написан
    12 комментариев
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Почему vs code из коробки в .html файле сочетание видит как комментарий? или это браузер?

    sim3x
    @sim3x
    Замените на &lt; &gt;
    Ответ написан
    Комментировать
  • Как решить проблему с пониманием sql?

    Ptolemy_master
    @Ptolemy_master
    Судя по всему, у вас просто отсутствует база. Возьмите любую книгу по SQL и прочтите ее с начала до конца, выполняя по ходу упражнения. Уверена, после этого вы зависать больше не будете. Удачи.

    Да, еще один момент. Если не хотите зависать каждый раз, нужно запросы составлять периодически. У меня похожая проблема с регулярными выражениями - так как я пользуюсь ими очень-очень редко, то каждый раз задача по ним вводит в ступор. Но именно по той причине, что я пользуюсь ими редко, меня это устраивает - просто нет смысла тратить времени на изучение правил и синтаксиса - все равно за полгода или год забуду.
    Ответ написан
    Комментировать
  • Что подойдет для организации личных задач/проектов/контактов/файлов?

    @h7b6
    Возможно trello.com подойдет.
    Ответ написан
    Комментировать