Какая хорошая легкая структура MVC Python?

Я знаю, что есть тонна фреймворков Python. Можете ли вы, ребята, указать мне в правильном направлении? Моя главная забота - простота, мне не нужно много посторонних функций. Вот несколько других вещей, которые я хочу (или не хочу):

  • не заботится о ORM, просто хочу, чтобы он работал с MySQL
  • имеет настраиваемые маршруты
  • поддерживает макеты

Ответ 1

web2py составляет 265 Кбайт исходного кода и 1.2 МБ все включено (сравните с 4.6 МБ Django). Тем не менее web2py сделает все, что вам нужно (управлять сеансом, куки, запрос, ответ, кеш, интернационализация, ошибки/билеты, абстракцию базы данных для GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird и т.д.). - просто разархивируйте и щелкните по нему - и вы можете сделать разработку в своем браузере.

Web2py имеет как маршруты, так и обратные маршруты.

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

Ответ 2

Поскольку вы явно не хотите ORM, я бы держался подальше от рамки "полного стека", если бы я был вами. Стандарт Python WSGI дает вам массу простых в использовании опций, которые предоставят вам только те функции, которые вам нужны, и даже позволят вам выбрать свой стиль работы.

Вот пример: для отправки URL-адреса вы можете использовать Routes, в котором порты превышают стиль отправки URL-адресов Rails. Или вы можете комбинировать Selector с WebOb, если этот стиль вам больше подходит.

Для "макетов" вы можете использовать мощный Jinja2, если вам нужны шаблоны, которые не могут запускать код. Или Mako, если вы предпочитаете смешивать небольшой код с вашими шаблонами. Вы можете использовать Deliverance для управления макетом страниц, состоящих из нескольких приложений и даже нескольких языков!

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

Лично я большой поклонник ORM (особенно SQLAlchemy), но если вы хотите пойти ORM бесплатно и В общем случае вы не можете комбинировать отличные компоненты WSGI, доступные в Python.

Ответ 3

Дайте web.py попробовать. Это очень просто и может обеспечить минимализм, который вы ищете.

Ответ 4

Пилоны.

Это намного лучше, чем django, и не приходит с дрянным ORM.

Ответ 5

Люди уже дали много ответов в отношении веб-приложений, но MVC (или любая другая парадигма) не привязана только к сети. Это просто для ясности.

Если вы про простой MVC, Pylons более точно соответствует парадигме. Django интерпретирует MVC, и они называют это model-template-view, но идея разделения роли одинакова. Фактический выбор - это вопрос личного вкуса, хотя ни один из этих двух я не считаю lightweigth (Пилоны могут казаться более легкими, но на самом деле это не так, и в последнее время Django собрал дополнительный вес - скорее всего, вы не подойдете даже к небольшому приложению, например, к личным блогам в 20 МБ).

Конечно, ничто не остановит вас от написания вашей собственной структуры, например. с WebOb. Вы можете сделать его таким же легким, как вы хотите (и научиться многим вещам).

Ответ 6

Если вам нужно что-то простое, без необходимости создавать свой собственный framework, но все же не все включено (django), вы можете захотеть попробуйте CherryPy. Он может использовать почти любой диспетчер (система маршрутизации страниц/URL-адресов). Вам также нужно будет выбрать свой собственный механизм шаблонов, Genshi - мой любимый.

Ответ 7

Когда дело доходит до настольных приложений Dabo, это хороший выбор. Это кросс-платформенная платформа поверх wxPython, которая поддерживает MySql, Postgresql, Firebird и Sqlite.

Ответ 8

Вы хотите web2py. Проверьте это:

  • не заботится о ORM, просто хочу, чтобы он работал с MySQL

Web2py не имеет ORM, но у него есть синтаксическая оболочка над SQL, что упрощает выполнение SQL.

  • имеет настраиваемые маршруты
  • поддерживает макеты

... web2py имеет оба этих параметра.

И web2py является более легким, чем django/rails/все, что на самом деле имеет значение. ОЧЕНЬ легко учиться. Самое сложное в изучении структуры MVC - это скрипты, ORM и (с django) язык шаблонов. Но web2py избавился от скриптов, упростил ORM, а язык шаблонов - просто python в устном способе.

Ответ 9

checkout https://github.com/salimane/bottle-mvc или https://github.com/salimane/flask-mvc. Они являются шаблонами, которые могут помочь вам начать с контроллеров, моделей в отдельных папках. Они основаны на микроархивах с бутылками и флягами, без бесполезных функций, они дают вам гибкость для плагинов любых модулей, которые вы хотите.

Ответ 10

Джанго!

Google App Engine использует его.

Я тоже использую его для своих собственных проектов для домашних животных.

Ответ 11

Да, я бы сказал, что Django - это, безусловно, путь. Его модульная конструкция гарантирует, что вы можете смешивать и сопоставлять компоненты (ORM, шаблонный движок, отправка URL-адресов,...) Вместо того, чтобы застревать с компонентом, который предоставляет инфраструктура, вы можете заменить его на любой сторонний эквивалент.

Ответ 12

web2py! django вызывает диспетчерский вид, - сказал нюф.

Ответ 13

Если вы хотите простоту, используйте web2py или pylons. Django хорош... но кривая обучения крутая

Ответ 14

Джанго. Вам не нужно использовать дополнительные функции, и он хорошо разработан, чтобы вы могли микшировать n-match сторонних библиотек по мере необходимости.

Ответ 15

Я действительно новичок на Python, но я попробовал немного, особенно Django и web2py. Мне понравилась простота web2py, через несколько дней я смог создать сайт средней сложности. У него есть неопровержимые наборы функций DAL, генерация кода, HTML hlpers, и для меня самой важной особенностью была полная документация на сайте.

Ответ 16

Я бы посмотрел на Pylons; он легкий и быстрый.

Ответ 17

Я тоже на лодке Django. Вот несколько причин:

  • Скорее всего, вы сэкономите время с Django admin interface, избегая ручных запросов.
  • Django система шаблонов является фантастической.
  • Django имеет WONDERFUL community, очень жаждущий помочь (см. #django on freenode)

Ответ 19

Хотя не все фреймворки Python явно поддерживают MVC, часто тривиально создавать веб-сайт, который использует шаблон MVC, отделяя логику данных (модель) от логики взаимодействия пользователя (контроллера) и шаблонов (вид).

http://docs.python.org/howto/webservers.html#model-view-controller