Django, Turbo Gears, Web2Py, что для чего лучше?

Я задумал проект, по которому стоит наконец окунуться в программирование.

Прочитав кучу материалов здесь и в других местах, я решил сделать Python таким, каким я сейчас учусь, поверх C # или java. Что меня больше всего убедило, так это экскурсии Пола Грэма по языкам программирования и Lisp, хотя Arc находится на экспериментальной стадии, что не помогло бы мне сделать это веб-приложение прямо сейчас.

Что касается быстрого веб-приложения, я проверил Django, Turbo Gears и Py2Web. Несмотря на то, что я трачу много времени на чтение, я до сих пор не знаю, какой из них мне следует использовать.

1) Django, безусловно, имеет самое приятное присутствие в Интернете и хорошо подготовленное руководство на месте, они уверены, что знают, как показать свое дело.

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

3) Turbo Gears ... Думаю, и модульная. Людям, которые писали об этом, он нравился ... Я не мог найти ничего особенного, что могло бы сделать его особенным по сравнению с Django.

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

Поскольку, вероятно, ни один фреймворк не является лучшим во всем, я расскажу о приложении, которое хочу создать:

Он будет использовать MySQL, ему потребуется регистрация / вход, и будет масса простых математических операций с данными из ввода и SQL-запросов. Я завершил работу над функциональным прототипом в Excel, поэтому я точно знаю, что хочу построить, и надеюсь, что это поможет мне преодолеть мою глупость. Я буду маленьким приложением, ничего большим.

И я не хочу видеть HTML при его создании ;-)

PS: спасибо тем, кто запускает Stackoverflow, они нашли это место как раз в нужный момент!


person Tsais    schedule 05.09.2010    source источник
comment
Я думаю, вы смотрели не на тот сайт для web2py. Это web2py.com. Нам неизвестны неработающие ссылки, и мы выпускаем новую версию в среднем каждые две недели. Когда выходит новая версия, обновляется весь веб-сайт.   -  person mdipierro    schedule 06.09.2010
comment
Думаю, я понял, что произошло: одна из бесплатных ссылок для загрузки приложения на новом сайте привела меня к старому сайту без моего ведома - а поскольку это старый сайт, естественно, он устарел.   -  person Tsais    schedule 06.09.2010
comment
Ваше руководство прекрасно читают, наслаждаясь каждой его страницей ...   -  person Tsais    schedule 06.09.2010
comment
Ой! вы нашли ошибку. Старый сайт (mdp.cti.depaul.edu) должен был быть перенаправлен на новый сайт, но этого не произошло. Теперь это исправлено. Спасибо.   -  person mdipierro    schedule 06.09.2010


Ответы (7)


Вам следует ознакомиться с интерактивной документацией по web2py (http://web2py.com/book). Он поставляется с контролем доступа на основе ролей (наиболее общий механизм управления доступом), и он очень детализирован, вы можете предоставить доступ для определенной операции с конкретными записями. Он поставляется с веб-интегрированной средой разработки, но вы можете использовать WingIDE, Eclipse и PyCharm. . Он поставляется с вспомогательной системой, которая позволяет создавать HTML без использования HTML. Вот пример полного приложения, которое требует, чтобы пользователи регистрировались / входили в систему / публиковали сообщения:

db.define_table('message',Field('body'),Field('author',db.auth_user))
@auth.requires_login()
def index():
    db.message.author.default=auth.user.id
    db.message.author.writable=False
    return dict(form=crud.create(db.message),
                messages=db(db.message.id>0).select())

Проект web2py очень активен, как видно из списка изменений http://code.google.com/p/web2py/source/list

Если у вас есть вопросы, связанные с web2py, я настоятельно рекомендую вам присоединиться к списку рассылки web2py: http://groups.google.com/group/web2py/topics

Мы очень активны, и на ваши вопросы ответят очень быстро.

person mdipierro    schedule 05.09.2010
comment
Сегодня я готовился к установке django, но, найдя pdf-файл с функцией путем сравнения функций с примерами кода, я перешел по вашим ссылкам и в значительной степени пришел к выводу, что web2py - самая современная из работ веб-фреймов. Особенно для тех, кто плохо знаком с программированием, это очень приятно, когда безопасность обеспечивается за меня, и мне всегда нравились полезные настройки по умолчанию в программном обеспечении. - person Tsais; 06.09.2010
comment
Также нашел несколько хорошо заполненных сайтов сообществ, так что я достаточно уверен, что могу использовать тот набор функций, который мне больше всего нравится. Мое понимание того, что важно, в лучшем случае неполное, но у человека никогда не бывает большего, чем текущее понимание, на котором можно принимать решения ;-) Так что большое спасибо за ваш ответ, я публикую его, так как я делаю небольшой перерыв в чтении вашего руководство ^^ - person Tsais; 06.09.2010
comment
Не стесняйтесь обращаться к списку рассылки или ко мне лично для вопросов и советов. - person mdipierro; 06.09.2010
comment
Один совет. Если вы новичок в этом, начните с этого видео: vimeo.com/13485916 - person mdipierro; 06.09.2010
comment
Согласитесь с Массимо - группа web2py очень полезна и дружелюбна: groups.google.com/group/web2py < / а> - person hoju; 07.09.2010
comment
web2py имеет много хороших функций, но будьте очень осторожны с глобальной средой, которая через короткое время становится настоящей проблемой. Это очень затрудняет взаимодействие со сторонними инструментами, такими как средства запуска тестов. Django намного более зрелый, он старше, чем web2py, и имеет гораздо большее сообщество и количество установок. - person Mike A; 17.08.2011
comment
Я посмотрел учебник и видео о web2py и показался мне интересным. @mdipierro должен был пояснить, что он автор / разработчик фреймворка web2py. - person rjoshi; 17.05.2013

Я должен сказать, что как не особо опытный разработчик, скорость, с которой я смог создавать с помощью web2py, поразила меня. Во многом благодаря удивительному сообществу и основной ценности Massimo, заключающейся в том, чтобы сделать фреймворк доступным.

Когда я начинал, я написал 0 строк кода на Python Никогда не слышал о web2py

Я серьезно занимаюсь этим около месяца и продвинулся (как обычно) от вопросов, на которые никто не мог ответить (потому что они не имели никакого смысла), к кодированию часами, не беря в руки книгу. или задать вопрос.

Я действительно впечатлен.

person Lorin Rivers    schedule 02.12.2010

У меня был положительный опыт работы с Django.

  • Встроенная аутентификация и простые в использовании расширения для registration
  • Очень хорошая документация
  • Вы, вероятно, пишете свои HTML-шаблоны в основном в base.html, а затем просто используете наследование шаблонов (Примечание: вам нужно написать хотя бы немного HTML)
  • В отличие от Turbogears, Django более нестандартный.
  • У меня нет опыта работы с web2py, но, по моему впечатлению, он пытается сделать немного или много "из коробки".
person miku    schedule 05.09.2010
comment
из учебника django казалось, что я могу просто скопировать некоторые шаблоны по умолчанию в свой путь к приложению и работать с ними, пока фактическое приложение не будет завершено. И тогда у меня может возникнуть необъяснимое желание переделать шаблон ...? - person Tsais; 05.09.2010
comment
Можешь попробовать. Но с HTML тоже не так уж сложно. - person miku; 05.09.2010

Если вы решите использовать Django, убедитесь, что вы используете его общие представления. Они избавят вас от написания большого количества кода как на Python, так и на HTML.

Кроме того, если нет особых причин для использования MySQL, я советую вам перейти на PostgreSQL. Django гораздо больше ориентирован на PostgreSQL, и в любом случае это гораздо лучшая база данных.

Онлайн-документация по Django великолепна, это то, что отличает ее от всех других фреймворков. Я также рекомендую книгу Джеймса Беннета Практические проекты Django

person Cesar Canassa    schedule 05.09.2010
comment
да, определенно, в их общих представлениях есть довольно приятные особенности! - person Tsais; 06.09.2010
comment
Разве не я, я не могу проголосовать, пока не наберу 15 баллов ... может, кто-то ошибся? Я думаю, что ваш ответ очень полезен, и я дам вам +, как только смогу ... Я хотел бы спросить вас, почему вам нравится PostgreSQL больше, чем MySQL. Я задавался вопросом, было ли все еще хорошей идеей использовать MySQL сейчас, когда он принадлежит Ларри. Моя основная причина, по которой я до сих пор придерживаюсь MySQL, заключается в том, что он установлен у большинства хостинговых компаний и для него существует множество инструментов с открытым исходным кодом. Хотя я смотрел на Web2Py, я мог в значительной степени использовать это для управления любой поддерживаемой базой данных, включая PostgreSQL ... - person Tsais; 06.09.2010
comment
Проверьте эту тему: stackoverflow.com/questions/ 110927 / - Есть несколько хороших комментариев относительно MySQL и PostgreSQL. - person Cesar Canassa; 06.09.2010
comment
Я с Цаисом по этому поводу. MySQL, принадлежащий Oracle, стал рискованным инструментом. - person mdipierro; 06.09.2010
comment
Хорошо, поэтому я прочитал ту большую ветку о MySQL и PostgreSQL ... в целом, это довольно большая поддержка PostgreSQL ... Но всегда ли мне понадобится минимум виртуального совместного размещения, чтобы установить это для себя? Я никогда не видел дешевого веб-хостинга, предлагающего PostgreSQL. * просматривает рекомендации по хостингу Web2Py ... - person Tsais; 07.09.2010
comment
Webfaction = дешевый (по цене, а не по качеству) веб-хостинг, предлагающий PostgreSQL. Планы начинаются с 9,50 долларов в месяц (если вы хотите платить помесячно, для более длительных обязательств предусмотрены скидки). Я никоим образом не связан с веб-фракцией, за исключением того, что являюсь очень довольным клиентом более года. - person mwolfe02; 17.09.2010

  • Django: Слышал, у него лучший административный интерфейс. Но использует собственный ORM, т.е. не использует SQL-Alchemy.

  • Web2py: Не исследовал это.

  • Turbogears2: по умолчанию использует SQL-Alchemy, использует Catwalk для интерфейса администратора, но документация не так хороша.

Я выбрал Turbogears2, потому что он использует популярные компоненты, поэтому мне не пришлось изучать что-то новое ...

person Lionel    schedule 21.09.2010
comment
Насколько я тем временем обнаружил, вам следует изучить Web2Py, он, похоже, не использует уродливых ярлыков, которые могли бы вас укусить позже. Всего несколько разумных значений по умолчанию, и вы получите контроль над всем таким образом: вы можете позволить ему генерировать ваш SQL-код и показывать его или не показывать вам, или вы можете просто написать свой собственный. Все, что он делает, можно переопределить. Я думаю, что он не просто самый новый, он действительно продуман с учетом преимуществ и недостатков старых фреймворков, что делает его серьезным технологическим достижением. - person Tsais; 27.09.2010

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

person osman    schedule 11.04.2013

Если вы «не хотите видеть HTML при его создании», то можете забыть о Django. Он не ориентирован на то, чтобы «сделать по щелчку мыши», он ориентирован на профессионалов, которые переходят от концепции к производству в кратчайшие сроки. Иерархический характер языка шаблонов может привести к очень чистому общему макету сайта. Я использую Django для всех своих крупных сайтов, и мне это нравится.

Хотя он написан на PHP, а не на Python, вы можете взглянуть на основную новую версию WordPress, которая вышла 2 или 3 месяца назад. В версии 3.0 они прошли долгий путь от среды, предназначенной только для блогов, и для нее существует множество готовых шаблонов. Конечно, если вы хотите настроить шаблон, ну, опять же, старый неприятный HTML. Я подумываю использовать его для своих небольших клиентов, которые не могут иметь дело с администратором выделенного сервера и т. Д., Который, как правило, поставляется с сайтом Django.

Обновление: А, я пропустил полушуток - я встал слишком рано, и это делает меня глухим к юмору. Что касается использования шаблонов с существующих сайтов, я довольно успешно проделал это с парой сайтов, как статических, так и изначально управляемых хорошо написанными PHP-скриптами. Я рекомендую внимательно прочитать _1 _ и {% include %} docs. Оба принимают либо строковый литерал , либо переменную. Я использовал более поздний метод, и он может быть весьма полезен для сайта с сильной иерархией, отличающейся изменением стиля в разных ветках.

Также стоит потратить время на то, чтобы понять порядок поиска шаблонов - его можно использовать с большим успехом, но это может вызвать недоумение, если вы его не изучите. См. Элементы, связанные с шаблоном, в настройках .py для этого и других полезных вещей.

person Peter Rowell    schedule 05.09.2010
comment
Я наполовину шутил по поводу комментария no-html ... Я могу писать html во сне, всегда был специалистом по фотошопу / шаблонам для работы. Так что я просто взволнован тем, что похоже, что Django позволяет мне использовать существующие шаблоны по умолчанию, поэтому я могу просто сосредоточиться на написании базы данных и математических функций, если мне не нужно возиться с внешностью. Автоматическое сворачивание наборов полей казалось достаточным контролем над компоновкой. - person Tsais; 05.09.2010
comment
спасибо за дополнительные советы, не всегда легко узнать, что читать и понимать в первую очередь ... - person Tsais; 06.09.2010
comment
если вам нравится wordpress, посмотрите на мгновенную прессу (написанную на web2py): code.google.com/p / мгновенное нажатие - person mdipierro; 06.09.2010
comment
@mdipierro: Очень интересно! Спасибо за ссылку! - person Peter Rowell; 07.09.2010