Django для разработчиков web2py

Теперь, когда я довольно хорошо знаком с web2py, я хотел бы дать Django.

В чем главные отличия?

Какой был бы самый эффективный способ начать работу с учетом знаний web2py? (Это должно помочь получить некоторые знания платформы приложений python, нет?)

ИЗМЕНИТЬ

Кроме того, если вы использовали оба варианта, можете ли вы предложить мнение, по которому вы предпочитаете и почему?

Ответ 1

web2py был очень вдохновлен Django, и, если вы его знаете, легко узнать другое. Мы добавили некоторые функции, которые мы не нашли в Django, в том числе: миграция базы данных (автоматически изменяем таблицы), билеты на ошибки, сетевую среду IDE, уровень абстракции базы данных, который работает в Google App Engine, механизм управления доступом на основе роли с подключаемым логином модули.

Одно из фундаментальных различий в дизайне заключается в том, что в приложениях Django реализованы модули, поэтому вам нужно перезапустить сервер, когда вы их редактируете. В Web2py вместо этого Model/Views/Controllers не являются модулями, они выполняются (не импортируются) фреймворками и, следовательно, вам не нужно перезапускать сервер при их изменении.

Другое отличие состоит в том, что Django использует ORM, web2py использует DAL. DAL немного ниже уровня, чем Django ORM, и это приближает его к синтаксису SQL (например, позволяет использовать левые соединения, произвольные агрегаты, вложенные выборки и их комбинации), оставаясь переносимыми (мы поддерживаем 10 разных баз данных). DAL также упрощает динамическое метапрограммирование моделей (например, создавать модели во время выполнения на основе спецификаций, хранящихся в файле, таких как XML или CSV файл).

Django работает дольше, поэтому вы обнаружите, что у него больше специалистов, и больше приложений развернуто.

Ответ 2

Джанго = старый

Web2py = новый

Что бы Django ни делал, web2py делает лучше. Это потому, что web2py был создан задолго до django и учился на ошибках Django, хотя он делает все новые ошибки;)

Главное отличие, и что меня держит в web2py:

  1. У Django невероятная документация... web2py настолько интуитивно понятен, что ему не нужно так много... ОДНАКО! Я обнаружил, что документация по Django по большей части применима к web2py. Если вы проведете день и прочитаете книгу о джанго (гл. 1-7), вы поймете, как это правда. В некотором смысле, говорить, что Django лучше задокументировано - это глупость. Кроме того, обратите внимание, что любая инфраструктура, которая говорит об объемах документации для нее, как о хорошей вещи... будьте обеспокоены... документация - это хорошо, для начала не нужно ничего - лучше. Web2py существующей документации более чем удовлетворяет потребности 90% пользователей. Остальные 10% должны взглянуть на код библиотеки фреймворка (не такой большой, как Django, и не такой страшный). Кроме того, если вы дошли до того момента, когда вы тратите более 30% своего времени на изучение библиотечного кода, пришло время отойти от каркасов и перейти к коллекциям библиотек (таким как пилоны). На этом этапе это означает, что вы ничего не делаете, чтобы веб-фреймворки были разработаны для обработки...

  2. SQLForm в Django - это TextModel. После того, как вы создадите форму, используя TextModel (= SQLForm). Удачи в попытке изменить CSS одного поля ввода! В web2py вы просто делаете form.element(), такого нет в Django. Вы должны пройти через "widget()", но чтобы добраться до виджета, вы должны сначала пройти через тип поля ввода и т.д...

  3. Кроме того, ручная миграция БД... изменить схему? Извините... нужно либо загрузить и установить отдельное приложение миграции (на юг), либо сделать это вручную в консоли БД.

  4. Наконец, нет встроенной поддержки нескольких БД... думаю, обручи...

Другими словами... с Джанго... надеюсь, вам нравятся прыжки и обручи.

Если вы действительно хотите сделать шаг вперед от web2py, попробуйте Pylons... серьезно...

Самым большим недостатком web2py является его возраст и меньшая база кода... хотя это не лишено смысла, учитывая, что Django похож на первый веб-фреймворк на python, который реализует RAD-идеи в стиле RAILS, и вдвое старше, чем web2py. Web2py все еще находится на ранней стадии своего освоения... Django находится в предельно критической части массы, которая начинает снижаться... web2py должна достичь критической массы в любой день в ближайшие 2 года, я предсказываю.

ЗАКЛЮЧЕНИЕ Проведите день, прочитайте книгу django (гл. 1-7), прочитайте книгу Pylons (часть 1), а затем подумайте, почему вы используете каркас для начала. Для меня это было сделано как можно быстрее и без поиска документации 30% времени.

Web2py удовлетворяет вышеуказанные потребности для меня.

Ответ 3

Я сделал небольшое домашнее веб-приложение полностью в Django, а потом полностью в web2py. Это единственный способ понять различия и их влияние на опыт разработчика.

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

Во всяком случае, они очень близки друг к другу, гораздо больше, чем любая другая веб-структура по сравнению с любой из двух. Например, из точки зрения веб-фреймворка на основе Java они могут казаться почти идентичными друг другу.

Ответ 4

Это определенно помогает знать некоторые рамки python.

Наиболее эффективным способом для начала было бы сравнение разных секторов двух, то есть модели, представления, контроллера, диспетчеризации, шаблонов, форм и т.д.

Здесь - одно большое сравнение нескольких фреймворков. Уверен, что это поможет.

Ответ 5

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

Ответ 6

Кратко и по сути: Web2py - это то, чем должен был быть Django.