LINUX.ORG.RU

[реквестирую] Микро-веб-фреймворк на Python


0

2

Что там сейчас кошерно - webpy или cherrypy или еще что? Что я жду от него:

* Живой проект.
* Легкое наращивание возможностей путем подключения сторонних либ. Например что бы можно было прикрутить какой-нибудь шаблонизатор.
* Стабильность.
* В свое время мне очень понравился Sinatra, который на руби. Короче ищу что-то похожее.

Что буду писать: маленький сайт с «ручным» написанием sql. Можете отговорить меня в сторну джанги, но как-то оно слишком уж наворочено.

★★★★★

Последнее исправление: dizza (всего исправлений: 1)

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

PolarFox ★★★★★
()
Ответ на: комментарий от anonymous

А пиримади стабильная? И оно не как пилонс - с генерацией кучи мусора для каждого проекта?

dizza ★★★★★
() автор топика

Cherrypy отлично подходит для гибкой разработки веб приложений,но его нужно дополнить, инструментами для работы с базой данных, темплейтным движком и инструментом для валидации форм. Поддержка сессий у черрипай своя, хотя можешь привязать beaker. Я использую совместно с cherrypy:

sqlalchemy (отличный ORM) wtforms ( валидатор форм, можно formencode) mako (в качестве темплейтного движка)

Все это легко интегрируется с cherrypy. Плюс у тебя сервер из коробки, хотя я запускаю потом всем как wsgi приложение под апач. Вообщем все очень гибко. Главное черрипай очень питоничен.

yanka ★★
()

я бы webpy взял - проще некуда

dreamer ★★★★★
()
Ответ на: комментарий от anonymous

flask же.

Ого. Интересная штука.

dizza ★★★★★
() автор топика

Я бы взял Pyramid (ZODB + Traversal + Chameleon).

anonymous
()
Ответ на: комментарий от dizza

И оно не как пилонс - с генерацией кучи мусора для каждого проекта?

Тебе сложно самому покрутить 5 минут в virtualenv Pyramid? Сам и увидишь, что ставится.

anonymous
()
Ответ на: комментарий от anonymous

Мне бы такой фреймворк, что бы я его мог программно 100% сконфигурить, что бы небыло каких-то жестких соглашений (максимум какие-то умолчания), например по структуре дирректорий.

dizza ★★★★★
() автор топика

> [реквестирую] Микро-веб-фреймворк на Python

* Живой проект.


* Легкое наращивание возможностей путем подключения сторонних либ. Например что бы можно было прикрутить какой-нибудь шаблонизатор.


bottle.py

В свое время мне очень понравился Sinatra, который на руби. Короче ищу что-то похожее.


bottle.py

kid_lester
()

Есть ещё flask, webpy, sponge.

И если чуть ниже копать, то twisted-web, cherrypy, weblib.

Но если нужно дёшево, сердито, просто и легко расширяемо - то bottle.py, после его выхода на большие экраны жанр микрофреймворков для web на скриптовых языках (т.е. наличие памяти измеряется не менее, чем двузначным числом) умер навсегда.

kid_lester
()
Ответ на: комментарий от dizza

> Мне бы такой фреймворк, что бы я его мог программно 100% сконфигурить, что бы небыло каких-то жестких соглашений (максимум какие-то умолчания), например по структуре дирректорий.

bottle.py это 1 файл размером примерно 90 кб. из требований - только стандартная библиотека python, начиная с версии 2.5.

kid_lester
()
Ответ на: комментарий от dizza

например по структуре дирректорий

Pyramid не ограничивает тебя по структуре директорий.

что бы небыло каких-то жестких соглашений (максимум какие-то умолчания)

Сама суть Pyramid/Pylons.

anonymous
()
Ответ на: комментарий от kid_lester

bottle.py это 1 файл размером примерно 90 кб

А я могу прикрутить к нему любой шаблонизатор? Mako там или jinja2. В доках там какой их шаблонизатор описывается.

dizza ★★★★★
() автор топика
Ответ на: комментарий от dizza

[quote]Templates: Fast and pythonic built-in template engine and support for mako, jinja2 and cheetah templates.[/quote]

kid_lester
()
Ответ на: комментарий от kid_lester

умер навсегда.

Надеюсь что нет:

$ GET http://bottlepy.org/
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>500 - Internal Server Error</title>
 </head>
 <body>
  <h1>500 - Internal Server Error</h1>
 </body>
</html>

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

http://readthedocs.org/docs/bottle/en/latest/index.html

Теперь это типа офсайт. А bottlepy.org, вероятно, должен быть редиректом или чем-то подобным.

И вообще, весь офсайт помещается в одном маленьком дебиановском пакете, и есть везде, где есть Debian. :-)

kid_lester
()
Ответ на: комментарий от true_admin

> У тебя, кстати, какая позиция по вопросу memcpy vs memmove?

Я видел тему в трекере, но мне даже не интересно, в чём суть вопроса, я не читал. Что такое карма, мне тоже неинтересно, всё равно Кришна или Будда или кто там меня любит и так.

kid_lester
()
Ответ на: комментарий от kid_lester

http://avva.livejournal.com/2323823.html
вкратце
Линус: внезапно memcpy некорректно работает с перекрывающимися областями, почините или сделайте алиас на memmove.
Глибцовики: оно и не должно, не починим, не сделаем.

anonymous
()
Ответ на: комментарий от anonymous

а мне вот страшно

Через valgrind в питоне чуть ли не каждый коммит, не то что релиз :). Так что волноваться не о чем.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

>А можешь расписать чем bottle.py лучше остальных

ну так, kid_lester знатный хеллорорлдщик - недавно он агитировал всех за bottle.py и в качестве аргумента приводил бенчмарк хелловорлда, где скорость bottle была где-то 9500 запросов/сек на старой 486-машинке. только такие хелловорлдщики не учитывают, что веб-приложение - это не один простой SQL-запрос, а затраты на пачку серверов намного ниже, чем затраты на программистов-велосипедистов заново изобретающих функционал тяжелых фреймворков.

хотя, если не нужно тяжелое веб-приложение, а всего лишь пару страничек - лучший выбор - flask.

anonymous
()
Ответ на: комментарий от true_admin

> А можешь расписать чем bottle.py лучше остальных?

Он очень простой. И удобно расширяется. Но при этом, хоть можно много чего навесить, уже из коробки есть и простой шаблонизатор (и по виду и по количеству символов он проще других, лично мне он больше всего нравится), и сервер, и всё остальное.

Он быстрый. У него из требований - только 1 файл bottle.py, и стандартная библиотека python (начиная с 2.5), никаких обязательных требований к доп. расширениям нет, то есть, он ничем тебя не обязывает, кинул файл и забыл.

Но это не джанга. Ниша bottle.py - это то, что сейчас активно занимает php без фреймворков. Но при этом bottle.py и удобнее, и проще, и намного быстрее, и намного фичастее уже из-коробки.


А вообще, я обычно всё сразу сюда пишу: http://uuu.deb6.ru

kid_lester
()
Ответ на: комментарий от kid_lester

мутно зеленый на сером плохо читается

anonymous
()
Ответ на: комментарий от anonymous

> хотя, если не нужно тяжелое веб-приложение, а всего лишь пару страничек - лучший выбор - flask.

Что-то уж больно он любит UnicodeError выдавать в случайных местах.

а затраты на пачку серверов намного ниже, чем затраты на программистов-велосипедистов заново изобретающих функционал тяжелых фреймворков.


Оно не везде нужно. А затраты времени на написание кода и покупку плюс ввод в эксплуатацию нескольких sql-серверов несравнимы с написанием нужного на bottle.py.

Кроме того bottle.py именно позволяет делать динамические (в том числе нагруженные) сайты не только избранным, а вообще всем. И с SimpleTemplate этим всем будет куда проще разобраться, чем с фласковой jinja, или что там у него унутрях.

kid_lester
()
Ответ на: комментарий от anonymous

иногда скорость имеет значение :). Я написал простой сайт на джанге и получил около 30 запросов в секунду на одно ядро. После профайлинга оказалось что orm всё сожрал(если что, был постгрес, размер базы записей 300, запросы элементарные, сама база «летала»). Если говорить о той же джанге то у неё много где был NIH-синдром(«not invented here»), приходилось много лазить по всяким djangosnippets итп... Причём, из-за сложности джанги зачастую простейшие вещи порождали нетривиальный и громоздкий код.

Джанго 1.1 или 1.2svn была, не помню.

Вот после этого я и «задумался».

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.