увидев разговор
Впечатления: Django vs. Web2py
Впечатления: Django vs. Web2py
и поскольку в той ветке возможности ответь не было «пользователей, score>=50»
решил написать свои впечатления тут.
первое знакомство попалась статья можно поискать с название killer web application.
был слегка в недоумении подходом к web dev в web2py.
в django ранних версий проблематично развертывание множества приложений на одном хосте, позднее появилась такая возможность и соответственно поменялась файловая структура проектируемого приложения. конечно это понравилось, но черт возьми куда вы раньше смотрели - хотелось задать такой вопрос разработчикам.
после django конечно тяжко переходить на новые способы выборки из бд. В смысле с начало тяжело, а потом понимаешь, что в web2py человечней, что ли запрос получается. В дальнейшем уже не заглядывая в доки думаешь а примерно как то вот так будет и оно работает.
шаблоны проектирования в web2pe оч удобная вещь. если постоянно пишешь одно и тоже то достаточно создать шаблон в котором уже все необходимое будет включено. нужный вид вьюхи, jquery и тд. в django тоже появились шаблоны для приложений.
хочу подчеркнуть, что это сугубо мое мнение, как говорил Кочергин «Мнение мое не обязательно правильное»
редактирование контроллеров, моделей и вообще любых необходимых файлов через web интерфейс в web2py, выглядит очень вкусно. нет заморочек сидеть редактировать в консоли. можно быстро открыть браузер и подправить и глянуть как работает. Мы же пишем веб приложение почему бы не писать его в браузере. возможно в Django тоже уже есть такая батарейка.
порадовала фича в одной из последних версий web2py в случае ошибки курсор в редакторе в веб интерфейсе сразу ставится на предполагаемое место ошибки, после попытки обратиться к нему через браузер
инсталляция web2py - скопировал папку, запустил, все можешь кодить. или в случае инсталляция приложения нажал кнопку инстал указал путь к файлу приложения все. В django по сравнению с web2py на мой взгляд муторно инсталлировать.
Но опять же это делает нашу работу, нам за это платят
о еще один момент хочу затронуть в случае если необходимо показать работающее приложение в web2py ( по возможности без исходных кодов .py) . нажимаем кнопки в административном интерфейсе . компилировать -> архивировать скомпилированное, получаем рабочее приложение состоящее из файлов .pyc (без исходных кодов)
web2py не имеет зависимостей все находится в одной папке.
про базы данных в web2py можно сразу работать с разными бд . например роли в одной бд, данные в другой. Конечно в django тоже это можно реализовать.
несколько доменов - сразу можно указав в файле routes.py поддерживать несколько доменов.
как то кто то из знакомых задался вопросом обертки на python для js для стандартных часто повторяющихся штук - в web2py частично это есть.
CRUD вообще вещь - надо прям сейчас накидать как будет выглядеть веб приложение - выборка добавление записей в бд, удаление. аплоад картинок в бд и тд. Написал form = crud.create(db.sip_conf_db) в контроллере - готовый элемент с просмотром элементов бд, удалением, добавлением тд. В django такие батарейки наверняка есть.
контроль доступа к функциями контроллеров не обнаружил существенной разницы
по поводу хрона или запуска задач по расписанию или асинхронных задач - в web2py есть такое и даже несколько cron, Homemade task queues, Scheduler . ( сразу хочу пояснить, что в последних версиях Massimo не рекомендует использовать cron поскольку задача выполняемая им выполняется не асинхронно и точно ни когда не узнаешь когда на самом деле выполнится задача, (проверил это действительно так) разработчик рекомендует использовать другие способы менджмента асинхронных задач)
по хостингу pythonanywhere.com один из возможных ресурсов для хостинга django и web2py приложений, пару кликов и через веб интерфейс пиши новый сайт или инсталлируй готовый.
Для тестирования приложения в web2py уже есть функционал. ( все так же в django есть решения для тестирования )
переход к новой версии web2py 1 клик в интерфейсе управления. ( про django промолчу )
Конечно, есть и спорные моменты в архитектуре web2py. Например, согласно PEP класс, отвечающий за html тег <div> должен назваться Div но Maссимо решил что лучшим названием будет DIV . ( и тд для остальных тегов А, FORM, URL) но можно и напрямую обратится к сss используя _style.
DAL в веб2зн полезная штука можно взаимодействовать с бд через ДАЛ без самого web2py. например в одном из приложений реализовал взаимодействие с бд через Dal а администрирование через админку web2py, потом это выросло в полноценное приложение.
про безопасность уже упоминалось в Впечатления: Django vs. Web2py
в версии 2.3.2 web2py порадовало предложение попробовать мобильную версию твоего приложения - Running on Apache/2.2.16 (Debian) Try the mobile interface
еще порадовало 1 кнопка Deploy to OpenShift рядом с Deploy on GAE (сразу скажу, не пробовал)
в заключении: web2py, django очень похожи многое делается, смотря друг на друга. Хорошо, что эти два продукта есть.
P/S вот все что пришло в голову.