Django vs web2py для начинающего разработчика

Какая из этих двух платформ лучше подходит разработчику с опытом работы за 11 месяцев. Я решил изучить python для кодирования на стороне сервера и хотел знать, какой из них лучше подходит для кого-то на моем уровне мастерства. Я только что провел несколько дней, играя с web2py, и мне очень нравится, и я задаюсь вопросом, предлагает ли Django что-то большее, чего я упускаю?

PS. ОБНОВЛЕНИЕ: Спасибо всем за прекрасный вклад, купив три книги дджанго и пройдя несколько небольших проектов/учебников для django и web2py, я установил web2py. Это прекрасная инфраструктура, которая делает веб-разработку действительно интересной для новичка. Я бы порекомендовал всем новичкам изучить эту структуру, поскольку в будущем она будет распространяться. Django - замечательная инфраструктура, но web2py просто лучше в моем ограниченном опыте.

Ответ 1

(отказ от ответственности: я являюсь лидером проекта для web2py)

Django уже на 5 лет дольше, чем web2py, поэтому у него больше пользователей и больше приложений. Django имеет то, что они называют "admin", который не совпадает с web2py "admin", но больше похож на web2py "appadmin". Django "admin" лучше и настраивается, чем web2py "appadmin". Django не имеет эквивалента web2py "admin". (извините за путаницу имени).

web2py более компактен и имеет больше функциональности из коробки (более поддерживаемые базы данных, веб-среда IDE, система продажи билетов, работает на GAE без патчей, несколько методов входа в систему, управление доступом на основе ролей, веб-интерфейс перевода, поддержка нескольких соединения с базой данных, распределенные транзакции и т.д.).

Для меня наиболее важной функциональностью web2py является автоматическая миграция. Django не предоставляет их из коробки.

Для долгосрочной надежной совместимости с web2py важна также безопасность. Django сопоставим с web2py с точки зрения безопасности (за исключением того, что у web2py была предотвращение CSRF и предотвращение по умолчанию в шаблонах, прежде чем они это сделали), но Django нарушила обратную совместимость при выпуске 1.0. web2py никогда не делал с октября 2007 года.

Мне синтаксис web2py более естественным:

 db(db.tablename.fieldname <= value).select() # web2py
 Tablename.objects.filter(fieldname__lt=value) # Django

Мне не известно о функциях web2py, которых нет в Django. Я задавал этот вопрос много раз, потому что, если есть, мы хотим добавить его в web2py, но я еще не получил удовлетворительного ответа.

Конечно, есть вещи, которые мы делаем, но по-другому. Джанго следует "явный лучше, чем неявный". web2py не делает и вместо этого следует, что "все должно иметь поведение по умолчанию". Я считаю, что это делает код и конфигурацию web2py более компактными.

Во всяком случае, независимо от того, что вы выберете, они слишком хороши и надежны, и сходства меньше различий. Разработчики Django очень умные люди.

Сообщество web2py очень дружелюбное. Попробуйте задать вопрос в группе google2 и группе Django. Как эксперимент.

Ответ 2

Оба Django и web2py - отличные веб-фреймворки с полным стеком с похожими функциями и возможностями - вы не будете "пропускать" себя так же, как новичок с любой фреймворк.

Трудно ответить на ваш вопрос, не зная больше о том, что вы хотите сделать с обучением. Некоторые скажут, что существует опасность изучения структуры, а не языка, поэтому было бы лучше получить более глубокое понимание языка Python и более легких весовых фреймворков (например, Flask или wekzeug).

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

Несмотря на то, что для Django больше ресурсов для обучения, поскольку он был дольше и имеет больше пользователей, изучение Web2py также быстро связано с отличным book и почти мгновенные ответы на вопросы группы .

Если вы хотите получить работу, есть больше заданий Django, чтобы это могло быть фактором. Сказав это, сообщество web2py недавно настроило experts4solutions, где вы могли бы продвигать свои навыки и доступность в будущем.

Удачи!

Ответ 3

Я полный noob как с Web2py, так и с DJango, но я хотел, чтобы веб-фреймворк был pythonic, чтобы играть, учиться и создавать интерфейс для простой базы данных. Я посмотрел на web2py, но не смог найти достойных учебников, нацеленных на полных новичков, когда я установил web2py, что было очень просто, я не знал, что делать дальше, похоже, нет учебников, которые меня вели как создать простое веб-приложение (не просто мир привет). С другой стороны, DJango сделал Написание первой части приложения DJango 1. Это было действительно хорошо, давая новичка введение в то, как настроить и использовать фреймворк, написав простое веб-приложение. Пока Web2Py не предлагает этого, мой голос идет на DJango.

Ответ 4

Во многих словах: (как я понял)

Web2py определенно проще и делает код более простым и чистым. Но Django дает вам лучшее понимание того, что происходит, а также больше возможностей для изменения дизайна/процесса.

Web2py уделяет больше внимания "простому, чем сложному", но Django уделяет больше внимания "явным лучше, чем неявным". Две части The Zen of Python, поэтому очень сложно сказать, какая структура более Pythonic.