Что такое хороший легкий Python MVC фреймворк?

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

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

19 ответов

web2py - это 265 Кбайт исходного кода и 1,2 Мбайт все включено (сравните с 4,6 Мбайт Django). Тем не менее, web2py будет делать все, что вам нужно (управлять сессией, файлами cookie, запросом, ответом, кэшем, интернационализацией, ошибками / тикетами, абстракцией базы данных для GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird и т. Д.). Не требует установки. - просто разархивируйте и нажмите на него - и вы можете заняться разработкой в ​​своем браузере.

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

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

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

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

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

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

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

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

Пилоны.

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

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

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

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

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

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

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

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

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

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

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

... у web2py есть оба из них.

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

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

Джанго!

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

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

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

web2py! Джанго называет контроллер "представлением", - сказал Нуф.

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

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

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

Я тоже на лодке Джанго. Вот несколько причин, почему:

Джанго моя рекомендация.

Вы можете найти введение к нему здесь (Google Tech Talk от Джейкоба Каплана-Мосса):

И, возможно, вы также захотите взглянуть на выступление Адриана Головатого в Змеях и Рубинах Университета Деполь:

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

http://docs.python.org/howto/webservers.html

Другие вопросы по тегам