Какой из этих двух фреймворков больше подходит разработчику с опытом работы 11 месяцев. Я решил изучить Python для программирования на стороне сервера и хотел знать, какой из них лучше подходит для кого-то с моим уровнем квалификации. Я только что провел несколько дней, играя с web2py, и мне он действительно нравится, и мне интересно, предлагает ли Django что-то еще, что я упускаю?
PS. ОБНОВЛЕНИЕ: Спасибо всем за прекрасный вклад, после покупки трех книг по django и прохождения нескольких небольших проектов / руководств как для django, так и для web2py, я остановился на web2py. Это замечательный фреймворк, который делает веб-разработку действительно интересной для новичка. Я бы порекомендовал всем новичкам изучить этот фреймворк, так как он станет популярным в будущем. Django также является прекрасным фреймворком, но, по моему ограниченному опыту, web2py просто лучше.
Ответы:
(отказ от ответственности: я руководитель проекта web2py)
Django существует примерно на 5 лет дольше, чем web2py, поэтому у него больше пользователей и больше приложений, которыми можно похвастаться. В Django есть то, что они называют «админ», что не то же самое, что «админ» в web2py, а больше похоже на «appadmin» в web2py. «Администратор» Django лучше и более настраиваемый, чем «appadmin» web2py. Django не имеет эквивалента "admin" web2py. (извините за путаницу в названии).
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, но я еще не получил удовлетворительного ответа.
Конечно, есть вещи, которыми мы оба занимаемся, но по-разному. Django следует «явное лучше, чем неявное». web2py этого не делает, а вместо этого следует «все должно иметь поведение по умолчанию». Я считаю, что это делает код и конфигурацию web2py более компактными.
В любом случае, что бы вы ни выбрали, они обе являются хорошими прочными веб-фреймворками, и сходств меньше, чем различий. Разработчики Django - очень умные люди.
Сообщество web2py очень дружелюбное. В качестве эксперимента попробуйте задать вопрос в группе web2py google и группе Django.
источник
db(db.tablename.fieldname <= value).select()
"), потому что он не похож на Python (часть в скобках не присваивает значение одному из параметров, а только передаетTrue
/False
). Это стандарт для web2py или предоставленный вами код - это просто упрощенная версия реального кода web2py? Возможно, часть в квадратных скобках стоит заключить в кавычки? Пожалуйста, объясни.И Django, и web2py - отличные веб-фреймворки «полного стека» с похожими функциями и возможностями - вы не упустите многое, как новичок, с любым из этих фреймворков.
Трудно ответить на ваш вопрос, не зная больше о том, что вы хотите делать в процессе обучения. Некоторые скажут, что существует опасность изучения фреймворка, а не языка, поэтому может быть лучше получить более глубокое понимание языка Python и более легких фреймворков (например, Flask или wekzeug ).
При этом у web2py более низкая кривая начального обучения, чем у Django, поскольку он был специально разработан как инструмент обучения. . Я бы сказал, что вы сделали хороший выбор. Никакое обучение никогда не будет потрачено зря, и если вы решили, что вам понадобится что-то еще в будущем, хорошие методы, которые вы изучите с помощью web2py, не пропадут зря.
Хотя существует больше учебных ресурсов для Django, поскольку он существует дольше и имеет больше пользователей, изучение web2py также происходит быстро из-за отличной книги и почти мгновенных ответов на вопросы группы пользователей. .
Если вы хотите найти работу, есть больше вакансий в Django, так что это может быть фактором. Сказав это, сообщество web2py недавно создало expert4solutions, где вы могли бы продвигать свои навыки и доступность в будущем.
Радоваться, веселиться!
источник
Я полный новичок и в Web2py, и в DJango, но мне нужен был питонический веб-фреймворк, с которым можно было поиграть, изучить и создать интерфейс для простой базы данных. Я посмотрел на web2py, но не смог найти достойных руководств, ориентированных на полных новичков, когда я установил web2py, что было очень просто, я не знал, что делать дальше, похоже, не было никаких руководств, которые помогли бы мне как создать простое веб-приложение (не только привет мир). С другой стороны, DJango написал первую часть вашего первого приложения для DJango . Это было действительно хорошо, давая новичку представление о том, как настроить и использовать фреймворк, написав простое веб-приложение. Пока Web2Py не предложит это, я голосую за DJango.
источник
Проще говоря: (как я понял)
Web2py определенно проще и делает код проще и чище. Но Django дает вам лучшее понимание того, что происходит, а также дает больше возможностей для изменения дизайна / процесса.
Web2py уделяет больше внимания «простому лучше, чем сложному», но Django уделяет больше внимания «явному лучше, чем неявному». Две части The Zen of Python, поэтому очень сложно сказать, какой фреймворк более Pythonic.
источник