• Как вызывать фьюшки из темплея?

    Во-первых: пожалуйста, пользуйтесь нормальной терминологией.

    Во-вторых: вызывая шаблон, вы передаёте Jinja2 список переменных, правильно? В этот список можно включить и view-функции, которые вам нужны, и тут же вызывать их в шаблоне. Приблизительно следующим образом.

    env.get_template("my_template.html").render({
        'my_view': my_view,
    })


    <div>{{ my_view() }}</div>
    Ответ написан
    Комментировать
  • Веб-разработка и выбор фреймворка/языка?

    Насколько понимаю, Ruby и Python близки по идеологии. Мультипарадигменные интерпретируемые языки со строгой динамической типизацией, широкими возможностями интроспекции. Ну, в Ruby синтаксис несколько посложнее.

    Вам язык какой нравится больше? Чисто субъективно? На тот язык и фокусируйтесь.

    Что касается Django, - это довольно простой в использовании фреймворк. Простая структура приложений, очень простая и удобная ORM (я вот после Django ORM с трудом и отплёвываясь разбирался с SQLAlchemy). В Django 1.7 ещё и миграции из коробки встроены. В общем, непонятно, чем Django показалась вам такой сложной.

    По-моему, это вообще нормально. При изучении чего-то нового, иностранного языка или программной платформы, всегда наступает момент, когда трудно, утыкаешься носом в тупик и хоть брось. А вы не бросайте. Вопросы задавайте, коли что-то непонятно. Тогда и получится.
    Ответ написан
    Комментировать
  • Что такое *теоритическое число уникальных операторов* ?

    Ну вот скажем программа:

    print 2 + 3

    В ней один бинарный оператор `+` и два операнда - 2 и 3. В программе

    print -(a**2 + b**2)

    - Один унарный оператор -
    - Один бинарный +
    - Два бинарных **

    Соответственно операнды:

    - a, 2; b, 2
    - (a**2 + b**2)

    Не уверен, но мне кажется, что последнее тоже надо как отдельный операнд рассматривать. Нет?
    Ответ написан
    Комментировать
  • Нужен ли фронтенд для web-application на python?

    Заранее извиняюсь за резкость, но... Извольте абстрагироваться от бэкендов-фронтендов и подумать сами.

    Если вы пишете какую-нибудь web-ориентированную IDE, редактор изображений или ещё чего-то такое, для которого нужно много кода, исполняющегося на клиенте, - ну наверное, вы для этого кода какой-нибудь фреймворк будете использовать. Нет?

    Или вам нужно простое специализированное CRUD-приложение, - пользователи загружают какие-то данные, они обрабатываются на сервере, пользователям выдаются результаты. Обработка на сервере может быть сколь угодно сложной, с искусственным интеллектом, шахматами и поэтессами, но на клиенте кроме простенькой формочки не нужно ничего. Так зачем там какой-то JS-фреймворк? Он там даром не нужен, уверяю вас.

    На Питоне можно написать и первое, и второе, и пятое, и десятое. Более того, обмен данными между фронтендом и бэкендом осуществляется в стандартных форматах - обычно это JSON, ну или HTML кусочками пересылается, иногда даже XML. Но форматы эти никоим образом не зависят от того, на каком языке написана программа на сервере. Хоть на ассемблере пишите.

    Почему люди так гоняются за волшебными словами, применяя их без нужды и, видимо, даже без понимания, что они означают и зачем? Карго-культ какой-то. Видимо, IT-курсы научили повторять модные в данный момент buzzwords, а вот головой думать - увы.
    Ответ написан
    Комментировать
  • Как использовать getattr/setattr в запросе .update() в django?

    Скажем, вот так.

    TreeNode.objects.filter(id=self.id).update(**{rewarded_parents_fields[line - 1]: True})
    Ответ написан
    Комментировать
  • Безопасно ли использовать jsonb в PostgreSQL?

    Существуют для этого модули. Например:

    https://github.com/djangonauts/django-hstore хранит список пар "ключ-значение". Кроме того, можно задавать схему кастомных полей - указывать их список и типы; в модели, в ModelForm, в админке появляются новые поля, неотличимые от настоящих, но хранящиеся на самом деле в колонке типа hstore.

    https://github.com/bradjasper/django-jsonfield - уже для полноценного валидируемого JSON.

    Использовал эти вещи раза два, а именно первую библиотеку. Можно схему менять в зависимости от разных параметров модели, всё очень красиво и удобно. В production, однако, по разным причинам не попало пока. Не знаю, может быть ещё доберусь до боевого использования.

    Вообще очень неудобно, что такие вольности со схемой в реляционных СУБД делаются так трудно и костылеобразно.
    Ответ написан
  • Как реализовать универсальный онлайн-конструктор?

    Предложил бы использовать SVG.

    - Рисуем в векторном редакторе модель машины, ручки, имперского истребителя.
    - Даём её элементам имена: id="door", например.
    - Готовим цвета и фоны.
    - Подставляем нужные цвета, фоны, классы CSS с помощью JavaScript.

    Конечно, возможности ограничены, но можно ведь много всякого придумать. Например, можно сделать анимацию, можно заставить части рисунка двигаться. Ещё можно скрывать и показывать разные части рисунка в зависимости от настроек, или менять их форму на лету.

    Готовых решений такого рода не знаю, но в принципе, мне кажется, штука может получиться простая и интересная, достаточно удобная для многих применений.
    Ответ написан
  • Как создать кнопку вызова функции в шаблоне django?

    Ну а как вы можете себе это представить? Есть два метода.

    Синхронный. Создайте отдельный view, который вызывает упомянутую функцию, и направьте эту кнопку на его URL. После вызова функции он может перенаправлять пользователя куда нужно.

    AJAX - без перезагрузки страницы. Опять же, вы создаёте отдельный view, который вызывается JavaScript-функцией, запускающейся по щелчку на кнопке.
    Ответ написан
    Комментировать
  • Почему не работает сортировка в шаблонах django?

    Помнится, что в MPTTModel требовалось указывать определённое значение ordering. Кажется, по tree_id и lft.

    Я бы не стал заморачиваться; можно сделать в модели процедуру ordered_children, выводящую нужные элементы и в нужном порядке, и вызвать её из шаблона.
    Ответ написан
    Комментировать
  • Какие самые востребованные языки программирования и какие задачи они решают?

    Всякий используемый на практике язык программирования общего назначения является полным по Тьюрингу. Это означает, что написанная на нём программа способна выполнять все действия, какие может выполнить абстрактная машина Тьюринга-Поста - каретка, отмечающая клетки на бесконечной ленте, считывающая отметки на них, и перематывающая ленту в обе стороны. Несмотря на всю сложность всех существующих программных систем, никакой современный компьютер в принципе не может сделать ничего, на что не способна эта каретка.

    Другими словами, это означает, что все современные языки программирования по сути своей эквивалентны. Если вы можете написать нечто на одном языке - то по большому счёту ту же функциональность можете получить и на другом.

    Да, есть нюансы: нельзя написать операционную систему на JavaScript или отладчик уровня ядра на Python. Да, компьютерные игры пишут на C++, чтобы добиться максимальной скорости, а веб-приложения часто пишут на Python, Ruby или там PHP.

    Но в основе своей все эти C, Python, Java, даже Haskell - все они полны по Тьюрингу, все они работают на одной и той же архитектуре фон Неймана. И все они фундаментально эквивалентны. Хорошо написанный код на Python и столь же хорошо написанный код на Go, коли они обладают одинаковой функциональностью, могут отличаться множеством деталей реализации, но суть у них будет одинакова. Если переписать этот кусок кода на Haskell - ну он будет выглядеть сильно иначе, но суть всё равно останется той же.

    Поймите это. Нет других языков, кроме полных по Тьюрингу, нет других вычислительных машин, кроме машины фон Неймана. Это всё, что у нас есть, а остальное детали.

    Но вы, кажется, начинающий и мучаетесь выбором. Хватит мучиться, возьмите какой-нибудь простой язык, тот же Python, - я его всем советую, - и занимайтесь, чего-нибудь делайте. Если потом окажется, что вы жить не можете без управления указателями - перейдёте на C, ничего страшного. Если вам очень захочется монад и категорий - Haskell или Scala вас ждут. Такова жизнь: решения находятся итеративно, методом последовательных приближений. Действуйте.
    Ответ написан
    Комментировать
  • YAML: Python vs PHP?

    PyYAML тоже, вроде бы, имеет модули на C. Вот здесь есть пример: pyyaml.org/wiki/PyYAMLDocumentation

    Я думаю, в вашем случае будет выглядеть так:

    from yaml import load, dump
    
    try:
        from yaml import CLoader as Loader, CDumper as Dumper
    except ImportError:
        from yaml import Loader, Dumper
    
    with open('example.yaml', 'r') as stream:
        data = load(stream, Loader=Loader)
    
    output = dump(data, Dumper=Dumper)
    Ответ написан
  • Как корректно анимировать машинку на поворотах?

    Путь можно задать с помощью SVG и анимировать, например, библиотекой: dropthebit.com/592/pathanimator-moving-along-an-sv...

    Скажем, если у вас будет плавный поворот, машинка будет плавно огибать его и смотреть в правильном направлении - носом вперёд.
    Ответ написан
    Комментировать
  • Как подключить форму авторизации к django?

    См. документацию: https://docs.djangoproject.com/en/1.7/topics/auth/...

    Django уже содержит нужный вам view. Вам нужно:

    - Задать путь к нему в urls.py
    - Сделать для него HTML-шаблон
    Ответ написан
    Комментировать
  • Куда пойти учиться?

    Для начала определись, какой примерно вид деятельности вас интересует. Я бы выделил среди всех связанных с IT специальностей две группы.

    Инженерные дисциплины: программирование, проектирование, администрирование систем. Это область, скорее близкая к точным наукам, математике и логике. Если вам это интересно и нравится именно IT - следует познакомиться с каким-либо языком программирования. Я бы советовал Python. Для первичного знакомства существует множество курсов - acodemy.ru, codecademy.com (если знаете английский). Для дальнейшего изучения - учебник М. Лутца и, непременно, какие-то свои несложные проекты, на которых вы будете учиться.

    Артистические дисциплины - это дизайн интерфейсов и устройств, юзабилити и удобство использования, и так далее и тому подобное. Перечисленное, разумеется, тоже предполагает логические рассуждения и анализ, но всё же в основе там другие материи - вдохновение, креатив и прочая неведомая фигня, в которой лично я не разбираюсь. :)

    Определитесь, чего вам хочется, чем вам будет интересно заниматься.
    Ответ написан
  • Как в Python обьеденить строки из списков списка в один список?

    def flatten(l):
        for el in l:
            if isinstance(el, collections.Iterable) and not isinstance(el, basestring):
                for sub in flatten(el):
                    yield sub
            else:
                yield el


    stackoverflow.com/questions/2158395/flatten-an-irr...
    Ответ написан
  • Какие задания на фрилансе для вас самые легкие?

    Лёгкость или трудность задачи зависит не только от человека, но даже от его текущей работоспособности и настроения. Даже от того, с какой ноги встал утром оный человек. И не поругался ли он вчера с дамой сердца. :)
    Ответ написан
    Комментировать
  • В какую сторону смотреть при создании системы формирования бизнес-процессов?

    Системы такого класса именуются BPMS - Business Process Management System. Как правило, они применяются именно для того, чтобы управлять другими приложениями в соответствии с диаграммами процессов, составленными в нотации BPMN. Одно время интересовался ими, но до практического опыта не дошло. Может быть, подскажу несколько направлений и ключевых слов.

    Существует множество BPM-систем. Сходу вспоминаются BizAgi (коммерческая, но есть упрощённая бесплатная версия) и Activiti BPM (open source). Есть сайт - bpms.ru - там публикуются статьи и материалы на тему.

    www.sql.ru/forum/erp-crm - самый интересный русскоязычный форум по BPM-системам, который я нашёл.

    BPM - не единственное направление в этой области. В последнее время в некоторых кругах в моде ACM, Adaptive Case Management, цель которого - обеспечить большую гибкость и приспособляемость бизнес-процессов. В чём-то альтернативный, в чём-то дополняющий подход - системы управления бизнес-правилами BRMS (Business Rule Management System). Они предполагают, что мы не рисуем большие запутанные BPMN-диаграммы, а имеем дело с репозиторием простых правил вида "если A и B, но не C, то выполнить D, E и F".

    Тема, в общем, широка, и от вашей конкретной ситуации зависит, какая технология подойдёт вам лучше всего.
    Ответ написан
    Комментировать
  • Выбор языка программирования для моделирования физических процессов?

    Ещё один вариант - воспользоваться Wolfram SystemModeler или иным специальным средством для математического моделирования. Такие программы уже умеют рисовать графики и анимацию. Готовые модели можно экспортировать, в том числе и для Web.
    Ответ написан
    Комментировать
  • Как создать главную страницу в django?

    Вроде как / должен сработать. Как вы подключали flatpages и выполнили ли все инструкции? https://docs.djangoproject.com/en/1.7/ref/contrib/...

    Вам нужно подключать их urlpatterns, вероятно, по адресу '^' вместо '^pages/'.
    Ответ написан
  • Где взять базу данных продуктов?

    Может быть, это будет полезно: www.wolframalpha.com/input/?i=white+bread

    У Wolfram|Alpha есть API. Кажется, в некоторых пределах даже бесплатный.
    Ответ написан
    Комментировать