it-swarm-ru.tech

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

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

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

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

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

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

44
massimo

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

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

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

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

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

31
Kevin Dangoor

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

11
Dimitry Z

Пилоны.

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

9
habnabit

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

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

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

8
zgoda

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

6
Salimane Adjao Moustapha

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

6
alif

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

6
uwe

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

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

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

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

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

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

5
toomim

Джанго!

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

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

4
Graviton

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

4
Gabriel Ross

web2py! Django вызывает контроллер для представления, 'сказал Нуф.

3
why

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

3
BasicGuy

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

2
John Millikin

Я бы взглянул на Pylons ; это легкий и быстрый.

2
tholo

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

  • Скорее всего, вы сэкономите время с помощью интерфейса администратора в Django, избегая ручных запросов.
  • Шаблонная система Джанго фантастическая
  • У Django есть замечательное сообщество , которое очень хочет помочь (см. #Django на freenode )
2
Ross

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

2
user10917

Django моя рекомендация.

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

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

0
Nolan Evans