Что такое хороший легкий 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.
Я тоже на лодке Джанго. Вот несколько причин, почему:
- Скорее всего, вы сэкономите время с помощью интерфейса администратора Django, избегая ручных запросов.
- Шаблонная система Django фантастическая
- У Django есть замечательное сообщество, очень готовое помочь (см. #Django на freenode)
Джанго моя рекомендация.
Вы можете найти введение к нему здесь (Google Tech Talk от Джейкоба Каплана-Мосса):
И, возможно, вы также захотите взглянуть на выступление Адриана Головатого в Змеях и Рубинах Университета Деполь:
Хотя не все платформы Python явно поддерживают MVC, часто бывает тривиально создать веб-сайт, который использует шаблон MVC, отделяя логику данных (модель) от логики взаимодействия с пользователем (контроллер) и шаблонов (представление).