Django, Turbo Gears, Web2Py, что лучше для чего? - PullRequest
20 голосов
/ 05 сентября 2010

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

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

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

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

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

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

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

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

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

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

PS: благодаря людям, работающим со Stackoverflow, нашёл это место как раз в нужный момент!

Ответы [ 7 ]

19 голосов
/ 06 сентября 2010

Вы должны взглянуть на онлайн-документацию web2py (http://web2py.com/book).. Она поставляется с управлением доступом на основе ролей (наиболее общий механизм контроля доступа), и она очень детализирована, вы можете предоставить доступ для определенной операции над определенными записями. Он поставляется с веб-интерфейсом IDE, но вы также можете использовать 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

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

6 голосов
/ 02 декабря 2010

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

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

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

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

4 голосов
/ 05 сентября 2010

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

  • Встроенная аутентификация и простые в использовании расширения для registration
  • Очень хорошая документация
  • Вы можете написать свои шаблоны HTML в основном в base.html, а затем просто использовать наследование шаблонов (Примечание: вам нужно будет написать хотя бы немного HTML)
  • В отличие от Turbogears,Django более «из коробки»
  • У меня нет никакого опыта работы с web2py, но, по моему мнению, он пытается сделать что-то немного «из коробки»
2 голосов
/ 11 апреля 2013

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

2 голосов
/ 21 сентября 2010
  • Джанго: Слышал, у него лучший админ интерфейс. Но использует свою собственную ORM, т.е. не использует SQL-Alchemy.

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

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

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

2 голосов
/ 05 сентября 2010

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

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

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

1 голос
/ 05 сентября 2010

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

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

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

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

...