2009-12-10 6 views
11

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

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

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

EDIT

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

+1

Я считаю, что сначала вы должны убедиться, что знаете Python.Web2py не работает, поскольку работает обычный код Python - глобальное пространство имен беспорядок, многие вещи импортируются неявно, трудно назвать внутренний код Web2py как _pythonic_, а иногда и ударяться о стену (например, если вы определяете базу данных 'db' в 'db.py', как предложено в учебнике, тогда глобальная переменная' db' будет доступна в 'models.py' и, например,' people.py', но не в 'contacts.py'). Просто научитесь правильно создавать свой код, а не способ работы web2py, но как работает код Django. – Tadeck

ответ

25

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 работает дольше, поэтому вы найдете больше людей, обладающих навыками работы с ним, и больше приложений развернуто.

+4

Вам не нужно перезагружать сервер Django при изменении кода (http://www.djangoproject.com/weblog/2005/jul/20/autoreload/). Похоже, что это было с середины 2005 года. – MikeWyatt

+2

Нет, если вы используете сервер Django, но, если я не ошибаюсь, вам нужно перезапустить Apache, если вы запустите Django с помощью Apache + mod_wsgi или mod_python. В web2py вам не нужно перезапускать веб-сервер, даже если вы не используете встроенный. – mdipierro

+1

Вам не нужно перезапускать Apache, вы можете перезагрузить mod_wsgi или fcgi. – rapadura

6

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

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

Here одно большое сравнение нескольких структур , Я уверен, что это поможет.

+0

Ссылка больше не работает. Не могли бы вы найти ресурс, на который вы ссылались, и обновить ссылку? Было бы здорово. Благодарю. – Tadeck

4

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

9

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

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

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

+1

Хорошая точка, +1. Но отличия _real_ четко видны, когда вы пытаетесь сделать что-то более продвинутое, более настроенное в обеих рамках. Я полагаю, что тогда вы сможете увидеть, что Django превосходит Web2Py, так как вам ясно, что происходит в вашем приложении, а также все функции Web2Py или могут быть легко реализованы в Django. Есть некоторые отличия, такие как отсутствие встроенной среды IDE в Django (возможно, для этого есть модуль), но по крайней мере Django правильно интерпретируется различными IDE и отличается высокой настраиваемостью и стабильностью. – Tadeck

+2

@ Тадек: в отношении моего опыта работы с web2py я успешно отправил сайты, был очень ясен о том, что происходит в моих приложениях, не нужно переопределять функции, просто использовал web2py в среде IDE (PyDev Eclipse), внес свой код до магистрали , обладает отличной стабильностью (web2py гарантирует прямую совместимость!), внес вклад в книгу web2py и, как правило, наслаждался взаимодействием с дружественным сообществом. Я уверен, что все это возможно и с Django. Просто говорю'. –

11

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

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

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

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

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

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

  4. Наконец, не из коробки поддержки для нескольких блоков данных ... думаю, обручи ...

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

Если вы действительно хотите совершить прыжок вперед от web2py, попробуйте Пилоны ... серьезно ...

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

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

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

Смежные вопросы