• MVC составляющие во Flask и Django?

    @asd111
    MVC это абстрактное понятие, которое обозначает разделение логики. Как вы это назовете не суть. Главное чтобы работа с логикой, с данными и с внешним видом была разделена. Т.е. если у вас три класса в одном файле и с помощью одного вы делаете доступ к данным, с помощью другого делаете доступ к внешнему виду, а с помощью третьего связываете все это вместе, то у вас тоже MVC.
    В django логика работы программы(controller из MVC) описывается во view, работа с данными(model из MVC) происходит через model, а внешний вид(view из MVC) описывается в template. Во flask нужно самому думать что в какой файл положить и как делать структуру файлов.
    Ответ написан
    1 комментарий
  • Как в SASS сделать подобное ol > li?

    @VisualIdeas
    ol 
        & > li 
            & > ul 
                & > li 
                    стили


    Но вообще это очень плохой стиль написания стилей (сорри за тавтологию)
    Читайте про БЭМ
    Ответ написан
    2 комментария
  • Как в Pycharm указать тип файла jinja2?

    Shmele
    @Shmele
    Python developer
    В PyCharm 2016.2.3 работает команда 'Change File Language'. Шортката для неё по-умолчанию не нашёл.
    Вызвать можно так: Ctrl+Shift+A -> набираете 'Change File Language' -> Enter.
    f461fffc1b814dc2a3b581b8c9d6ff69.png
    Появится меню с выбором типа текущего файла.
    8d04c77f8bff4ce791720655af2d8d5e.png
    Ответ написан
    2 комментария
  • И все-таки PHP 7 быстрее Python 3?

    @DimaWeb
    Пишите на Python, а узкие места переписывайте на PHP.
    Ответ написан
    1 комментарий
  • Как правильно разобраться со списками?

    sim3x
    @sim3x
    генератор?

    если тебе нужно из одного набора (set'a) вычесть другой, то

    In [8]: set(l2) - set(l1)
    Out[8]: {2, 4}


    если не set
    In [9]: [x for x in l2 if x not in l1]
    Out[9]: [2, 4]
    Ответ написан
    Комментировать
  • Как повторно отправить форму без перезагрузки страницы?

    Inkognitoss
    @Inkognitoss
    Full-stack разработчик.
    Ну вы в succes кажется затираете ваш инпут
    jQuery('[name=' + name + ']').html('<div class="pop2">'+msg+'</div>');


    Разместите над вашем инпутом
    Смените в beforeSend и success jQuery('[name=' + name + ']') на jQuery('#for_progress')
    Ответ написан
    6 комментариев
  • Как решить, казалось бы, простую задачу на python3?

    aRegius
    @aRegius
    Python Enthusiast
    Привет.

    1. Есть два числа, x и y (целые положительные).
    2. Есть их разность, z (z = x - y)
    3. Чтобы найти большее из них, всего-то нужно сумму этих двух чисел и их разности разделить на 2:
    max_num = (x + y + z)/2
    4. Единственная "засада" в том, что, ввиду неопределенности чисел, их разность может быть отрицательным числом (например, x = 5, y = 853, x - y = - 848).
    5. Поэтому нам надо обеспечить, чтобы разность, при любом раскладе, была положительная.
    6. Для этого мы эту самую разность возводим во вторую степень и извлекаем из результата квадратный корень - для того, чтобы код был менее шумный, разделим эту процедуру на два этапа: a) z = (x - y) ** 2; б) z = z ** .5

    7. Итоговый код:
    z = (x - y) ** 2
    z = z ** .5
    max_num = (x + y + z) / 2
    Ответ написан
    2 комментария
  • Как решить, казалось бы, простую задачу на python3?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Например навскидку:
    >>> a,b=94,54
    >>> (a*(a//b) + b*(b//a))/(b//a+a//b)
    94
    >>> a,b=6,322
    >>> (a*(a//b) + b*(b//a))/(b//a+a//b)
    322

    P.S. Делал в консоли Python, поэтому явно функции для ввода/вывода на экран не использовал, если это важно, конечно :)
    Ответ написан
    5 комментариев
  • Какой мощный компрессор для уменьшения размера изображений Вы используете?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Tinypng
    Kraken
    2 лучших, все остальные по качеству далеки от них безумно.
    У обоих сервисов имеются плагины для gulp.
    Как полностью локальный вариант - gulp-image-optimization
    Ответ написан
    Комментировать
  • Как откатить makemigrations в django?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Просто удалите файл данной миграции если она еще не применена. Исправьте и выполните makemigrations еще раз.
    По manage.py show migrations можно глянуть примененные и непримененные миграции.
    Указав номер, можно откатиться на предыдущую миграцию
    manage.py migrate <модель> <номер миграции>
    Ответ написан
    Комментировать
  • Чем вы пользуетесь, sprintf или оператором(точкой) для внедрения параметров в строку в PHP?

    @unity_ultra_hardcore
    если подстановки идут в середине строки или их больше одной - использую sprintf.
    Вот такой код мне совсем не нравится (пример придуман из головы):
    $str = 'select `field` from `' . $table . '` where id = "' . $val . '"';

    Особенно, мне не нравятся сочетания кавычек перед/после $table
    Так куда лучше:
    $str = sprintf(
        "select `%s` from `%s` where `id` = '%d'",
        $field,
        $table,
        $id
    );

    Логика такова: при использовании формата, у нас целевая строка цельная, мы можем быть уверенными, что в ней нет никаких операторов (чем меньше операторов, тем легче читать) и неверного их сочетания.
    В строке с конкатенацией у нас куча операторов, в которых мы можем ошибиться - попробуйте навскидку изменить тип кавычек в этой строке с двойных на одинарные.
    Ответ написан
    Комментировать
  • Для чего в PyQt указывается ObjectName?

    @zaswed
    например в css стилях
    QPushButton#exit_button {
        border-image: url(resources/icons/64/exit.png);
    }
    QPushButton#config_button {
        border-image: url(resources/icons/64/config.png);
    }


    config_button и exit_button имена объектов
    Ответ написан
    1 комментарий
  • RESTful API и MVC — что это?

    Основной посыл использования RESTful API - применение основной идеи Паутины для взаимодействия автоматических агентов (приложений), а не только людей.
    Основная идея Паутины - построение распределенной информационной системы путем публикации неких абстрактных ресурсов, выдачи им идентификаторов (в сегодняшнем вебе - иерархических), определения ряда простых и широко известных операций над ними, не зависящих от содержимого ресурса (те самые GET, POST, PUT и т.д.), и связывания этих ресурсов ссылками (это называется гипермедиа, и в частности, гипертекст, если речь идет о текстовой информации).
    Как люди с появления Веба публикуют информацию в нем для потребления другими людьми, так и RESTful веб-сервисы публикуют иерархически структурированные ресурсы для потребления клиентами. Разница только в представлении - для людей это plaintext/HTML, для автоматических агентов - это JSON/XML/прочие форматы, которые удобно обрабатывать.
    Таким образом, если вы хотите какую-то информацию опубликовать как RESTful API, вам необходимо представить ее как набор ресурсов, а все операции над этой информацией выразить через набор предопределенных операций. Фишка в том, что во многих задачах этих предпопределенных операций вполне достаточно, главное правильно определить ресурсы.
    Важно понимать, что "ресурс" это обычно некоторая сущность, "существительное". Как правильно заметил Антон Жуков , ресурс /getItems хоть и может существовать в принципе, говорит о неудачно спроектированном API (действие представлено как ресурс).

    Есть и другие подходы к архитектуре распределенных приложений, например архитектуры, основанные на RPC (удаленный вызов процедур). Информация в таких архитектурах также представлена в виде некоторого набора сущностей, однако операции над ними определяются конкретной задачей, и для каждой сущности будет свой набор. Это больше соотвествует классическому ООП-подходу. Таким образом, RESTful следует подходу много сущностей (ресурсов) - мало операций (и эти операции известны заранее), а RPC - немного сущностей, но много операций над ними.

    Также важной чертой REST является отсутствие состояния, сохраняемого между запросами к ресурсам. Это очень важно для масштабирования системы.

    Сама архитектура REST не привязана к конкретным технологиям и протоколам, но в реалиях современного Веб, построение RESTful API почти всегда подразумевает использование HTTP и каких-либо распространенных форматов представления ресурсов, например JSON, или, менее популярного сегодня, XML.

    Смысл использования REST в том, что принципы, хорошо показавшие себя в "человеческом" веб и позволившие построить самую большую распределенную ИС, применяют и для "веба машин".

    Ответ длинноват, но как короче объяснить, чтобы не исказить понимание, не представляю. Если что непонятно - спрашивайте.
    Ответ написан
    7 комментариев
  • Добавлять ли virtualenv в git?

    @Stqs
    senior software developer
    Частенько бывает что часть пакетов нужна при разработке и не нужна на продакшене. И наоборот. Поэтому желательно бы еще разделять requirements для разработки и для продакшена.
    Файлы с requirements могут включаться один в другой. Таким образом обычно зависимости можно разделить на 3 отдельных файла.
    Например:
    reqs/
    - common.txt
    - prod.txt
    - dev.txt

    common.txt будет содержать все обязательные общие зависимости. Пример с потолка:
    Django==1.8.5
    mysql-python==1.2.5


    dev.txt будет содержать пакеты специфичные только для разработки но включая common. Пример опять же с потолка:
    -r common.txt
    ipyhton
    ipdb
    django-debug-toolbar==1.4


    prod.txt тоже будет включать common но так же содержать вещи которые на продакшене обязательны а в Вашем локальном окружении не нужны вовсе:
    -r common.txt
    gunicorn==19.4.1
    whateverelse=1.0.0


    соответственно когда мы собираемся разрабатывать мы устанавливаем зависимости так
    pip install -r reqs/dev.txt
    в продакшене
    pip install -r reqs/prod.txt
    Ответ написан
    Комментировать
  • Почему не запускается Django в virtualenv через Dropbox?

    sim3x
    @sim3x
    Хочу копаться с проектом на разных компах.

    есть воркфлоу с использованием внешнего репозитория - не нужно изобретать велосипед, тем более с дропбоксом
    git commit
    git push <remote host>
    
    ...
    git pull
    pip install -r requirements.txt
    ./manage.py runserver
    Ответ написан
    Комментировать
  • Как сделать освещенную область вокруг курсора на затененой картинке?

    @Aves
    Можно с помощью canvas сделать:
    document.addEventListener('mousemove', function(e) {
        ctx.clearRect(0, 0, w, h);
        ctx.beginPath();
        ctx.arc(e.offsetX, e.offsetY, 30, 0, 2 * Math.PI, true);
        ctx.rect(0, 0, w, h);
        ctx.fill();
    });
    JSBin
    Ответ написан
    2 комментария
  • Каков must have для студии по разработке?

    banderos120
    @banderos120
    Играю на балалайке
    Когда-то начинали с товарищем делать сайтики, только я был "программистом", а он собирал заказы. Одни из ошибок, которые позволили загнуться нашему совместному предприятию (просуществовали мы почти 2 года) - это:
    - недостаточно опытный программист (это я), плюс, если брали помощников, то они были еще неопытнее меня.
    - не составлялся четкий план на разработку, проектирование проекта не проводилось, из-за чего по ходу дела возникали ситуации, которые можно было решить еще на этапе проектирования, но нет, приходилось тратить время уже во-время разработки. Как следствие этого - неожиданное увеличение сроков.
    - не было четких условий для заказчика, т.е. типовой договор был, но, например стоимость правок оговаривалась налету, некоторые заказчики округляли глаза и приходилось делать забеслпатно. Следствие чего заказчик был царь и бог и некоторые их долги по оплате не были отданы до сих пор.
    - желание сэкономить, нет, я понимаю, что экономить нужно, но не на том, что приносит тебе доход, по-этому дизайнеры были хреновые, помощники говеные и т.д. Из-за чего заказчик был не доволен, а срок разработки проекта очень сильно увеличивался.
    - заказы по сложности и требованиям несопоставимые со стоимостью, т.е. напарник брал сложные заказы за смешные деньги, сетуя на то, что город маленький (300 000 жителей) и никто платить не хочет, в итоге с созданием и доработками выплаты задерживались, следующие заказы брались , пока недоделаны предыдущие и получался ком, которые ничего хорошего не обещал.
    - ну и результатом всего этого стало огромное количество долгов и плохих отзывов.
    Ну вот такие были проблемы у студии "Рога и копыта" из двух человек, какие вспомнил ))
    *пы.сы. не знаю, зачем это написал, просто, что-то вспомнилось.
    Ответ написан
    5 комментариев