Задать вопрос
  • Возможно ли создать мультисайт с помощью Джанго?

    sim3x
    @sim3x
    Возможно ли создать мультисайт с помощью джанго?
    Есть ли стандартные библиотеки у джанго для таких целей?
    Да
    https://docs.djangoproject.com/en/1.10/ref/contrib...

    Задачи у этого сайта такие - в фоновом режиме преобразовывать и копировать выборочные данные из основной базы в базы других сайтов, на другом хостинге.
    django commands + cron OR celery tasks

    Прием данных из баз других сайтов. по расписанию или событию, допустим, подтверждение заказа.
    celery tasks

    Формирование yml, json по расписанию, допустим, раз в час, для обмена данными с яндекс-маркетом, и мобильным приложением, формирование "на лету", не подойдет тк данных много.
    django commands + cron
    Ответ написан
    1 комментарий
  • Возможно ли создать мультисайт с помощью Джанго?

    Python/Django/Rest Framework/Celery.
    Вот этот стек нужен будет.
    Ответ написан
    Комментировать
  • Возможно ли создать мультисайт с помощью Джанго?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Что такое мультисайт?
    А насчёт задач, так конечно можно реализовать, можно и не ограничиваться django, по расписанию запускаете питоновский скрипт и делаете там что душе угодно.
    Ответ написан
    1 комментарий
  • Как остановить бота в django?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    > я думал, что в джанго по-умолчанию идет защита от этой штуки, получается нет?
    В любом случае средства "переднего края обороны" вроде файерволлов, или хотя бы даже на стороне веб-сервера поэффективней средств защиты уровня приложения будут.
    Поэтому как верно выше уже порекомендовали - используйте например fail2ban.
    Если источником атак были например наши китайские друзья, и на их целевую аудиторию вы не особо рассчитываете - модуль geoip с баном по определенным странам для фаерволла вам в помощь.
    Доступ у урл админки можно тоже только с опеределенных адресов сделать.
    Да и банальные меры предосторожности - нестандартный урл для админки, нестандартный логин и сложный пароль, - не помешают тоже.
    Ответ написан
    Комментировать
  • Как остановить бота в django?

    @DuD
    Попыток подключений или попытка входа в админку?
    В любом случае, можно попробовать использовать fail2ban, получится достаточно эффективно.
    Ответ написан
    Комментировать
  • Как подключится к MS SQL Express Server с другого компьютера?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    на сервере открываешь SQL Server Configuration Manager, в дереве элементов выбрать Protocols for SQLEXPRESS и в появившемся списке — TCP/IP выставить в Enable.
    Еще нужно открыть Properties (Свойства) и во вкладке IP Adresses, в пункте IPAll указать TCP Port 1433, а значение TCP Dynamic Ports очистить
    Кстати не забудь в брандмауэрe открыть 1433 порт, и ресстартнуть ms sql службы сервера.
    Ответ написан
    3 комментария
  • Как перевести на Sqlalchemy старый код, использующий SQL через pyodbc?

    @euspensky
    в sqlalchemy отличная документация с кучей примеров
    конкретно по составлению запросов - тут

    конкретно этот запрос можно записать почти как в sql
    условие для join'а D и P можно не прописывать так как есть соответсвующий relationship

    D = TblAlertDescription
    P = t_TBL_ALERT_PROJECTCORR
    PRC = t_TBL_CONF_PROJECTRSSFEEDCORR
    
    query = session. \
        query(D.ALERT_ID). \
        select_from(D). \
        join(P). \
        join(PRC, P.c.PROJECT_ID == PRC.c.PROJECT_ID). \
        filter(D.STATUS_ID == 1,
               D.alert_type_id == 5,
               PRC.c.RSS_LOCATION_ID == 1)
    
    print query

    ->
    SELECT "TBL_ALERT_DESCRIPTION"."ALERT_ID" AS "TBL_ALERT_DESCRIPTION_ALERT_ID" 
    FROM "TBL_ALERT_DESCRIPTION" JOIN "TBL_ALERT_PROJECTCORR" ON "TBL_ALERT_DESCRIPTION"."ALERT_ID" = "TBL_ALERT_PROJECTCORR"."ALERT_ID" JOIN "TBL_CONF_PROJECTRSSFEEDCORR" ON "TBL_ALERT_PROJECTCORR"."PROJECT_ID" = "TBL_CONF_PROJECTRSSFEEDCORR"."PROJECT_ID" 
    WHERE "TBL_ALERT_DESCRIPTION"."STATUS_ID" = ? AND "TBL_ALERT_DESCRIPTION".alert_type_id = ? AND "TBL_CONF_PROJECTRSSFEEDCORR"."RSS_LOCATION_ID" = ?
    Ответ написан
    1 комментарий
  • Для чего нужна ORM?

    Вы не путаете ORM с DBAL? ORM это не технология замены SELECT * FROM goods WHERE cost < 100.00 на $db->select()->from('goods')->where('cost < 100.00'). ORM это способ задания связи объектов и РСУБД. По сути позволяет абстрагироваться от способа хранения объектов вообще, с лёгкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удалённом сервере, оперируя на уровне модели (если говорить о MVC и т. п.) простыми plain old objects, а их персистентность отдать контроллеру. Не $db->select()->from('goods'),, не mysql_query('SELECT * FROM goods'), а $goodsRepository->findAll(), а уж будет репозиторий формировать SQL запрос, читать файлы или память, а может стучаться на Гугл и парсить его вывод — его, репозитория, личное дело (а также разработчика(ов), отвечающих за подсистему хранения).

    Кроме того ORM, как правило не исключает обращение к БД на уровне произвольных SQL запросов, оно лишь преобразуют результаты этих запросов в объекты модели предметной области (и наоборот), которые ничего не знают (в идеале) о таблицах, WHERE, HAVING и т. п.

    ORM это не только инструмент архитектурного разделения областей ответственности объектов и классов приложения, а также инструмент облегчения разделения труда разработчиков: кто хорошо шарит в SQL вообще и особенностях конкретного движка в частности — работает по «ту сторону» ORM, оптимизирует его как хочет, может нормализовывать и денормализовывать, например; кто хорошо разбирается в дебетах и кредитах — работает с plain old objects в терминах предметной области и может вообще ничего не зная об SQL, ему лишь нужно знать, что он всегда может получить объект или их коллекцию обратившись к методам вроде findById() или findAll() и сохранить результат работы методом save() или flush().
    Ответ написан
    3 комментария