Я думаю, что это зависит от определения того, что такое фреймворк и что он должен делать для вас.
Как указывалось, очень минимальной "структурой" будет WSGI, поскольку он определяет только один небольшой интерфейс для взаимодействия с веб-сервером. Но это мощный подход из-за промежуточного программного обеспечения, которое вы можете установить между вашим приложением и сервером.
Если вы хотите чуть больше, например, какой-то URL для отображения функции, тогда у вас есть несколько вариантов, некоторые из которых уже упоминались.
Если вы пойдете дальше, вы можете прийти к Pylons, Turbogears или Django, после этого, возможно, Zope, но он станет больше, и, возможно, боль, а также вы всегда принимаете во внимание мнение этой структуры.
В последнее время я все больше и больше пользуюсь (из Zope / Plone) repoze.bfg . Он очень маленький, не поставляется в комплекте с ORM (поэтому вы можете использовать SQLAlchemy, Storm или просто перейти к объектной базе данных, например ZODB ). То, что он делает, в основном обрабатывает переход от URL к представлению, которое является функцией. Он поддерживает как URL-сопоставление (как маршрут), так и обход объектов, что в некоторых случаях, IMHO, очень полезно. если у вас не очень строгое отображение. Хорошо, что он напрямую поставляется с инфраструктурой безопасности на основе ACL, которую можно использовать, если вы хотите, чтобы IMHO был очень практичным. Таким образом, вам не нужны декораторы, которые, кажется, используются в основном для таких вещей.
И, конечно, он основан на WSGI. Также ищите repoze subversion repository для довольно большого количества промежуточного программного обеспечения, а материал Paste также очень полезен для задач, связанных с WSGI.