10 Python веб фреймворків

Популярність мови програмування Python зростає. В цій статті ми ознайомимось з десятьма найбільш цікавішими Python фреймворками.

Django

Django є найбільш популярним Python веб фреймворком який слідує шаблону програмування MVC. Оригінально він був розроблений для управління декількома сайтами новин для The World Company of Lawrence, Kansas, та був випущений для публічного доступу під BSD ліцензією в липні 2005

web2py

Безкоштовний та з відкритим кодом, повноцінний фреймворк рівня підприємства для гнучкої розробки безпечних веб-аплікацій для доступу до БД, написаних на Python. Створений Massimo Di Pierro.

Pylons

Pylons це легкий веб фреймворк який робить наголос на гнучкості та швидкій розробці. Він поєднює найкращі ідеї зі світів Ruby, Python та Perl, надаючи структурний, але надзвичайно гнучкий Python веб фреймворк. Також це один з першийх проектів який використав стандарт WSGI, який надає широкі можливості повторного використання та гнучкості — але тільки тоді коли вона потрібна. З «коробки», Pylons орієнтований на те щоб зробити веб розробку швидкою, гнучкою, та простою.

Quixote Web Framework

Quixote це простий, водночас гнучкий та потужний фреймворк для написання веб аплікацій на Python.

Zope

Це безкоштовний, з відкритим кодом, об'єктно-орієнтований сервер веб аплікацій написаний на мові програмування Python. Zope означає «Z Object Publishing Environment.» (Середовище Публікації Об'єктів Z). Він може бути керованим майже повністю з веб інтерфейсу. Zope публікує веб об'єкти Python які зберігаються в об'єктну БД ZODB. Прості типи об'єктів, такі як документи, малюнки та шаблони сторінок, доступні для створення та управління для користувача через веб інтерфейс. Спеціалізовані типи об'єктів, такі як вікі, блоги, фото галереї, доступні як сторонні додатки (називаються продуктами), також існує процвітаюча община малого бізнесу який створює веб аплікації як Zope продукти.

TurboGears

TurboGears це Python веб фреймворк, який складається з декількох складових компонент, таких як MochiKit, SQLObject, CherryPy та Kid. TurboGears був створений в 2005 Kevin Dangoor-ом як фреймворк який використовувася у ще не випущеному продукті Zesty News.

Webware

Webware для Python це набір Python пакетів для розробки об'єктно-орієнтованих веб аплікацій. Набір використовує добре відомі шаблони програмування та включає швидкий Сервер Аплікацій, Сервлети, Python Server Pages (PSP), ORM, Планування Задач (Task Scheduling), управління сесією, та багато інших речей. Webware є модульним та легко розширюваним. Webware для Python є перевіреним та платформно незалежним. Він сумісний з багатьма веб серверами, БД та операційними системами.

CherryPY

CherryPy це об'єктно-орієнтований HTTP фреймвокр. CherryPy дозволяє розробникам будувати веб аплікації таким самим чином, як би вони будували будь які інші об'єктно-орієнтовані програми на Python. Як результат — менше коду за менший час.

Porcupine

Porcupine це Python сервер веб аплікацій який надає об'єктно-орієнтований фреймворк для швидкої розробки Багатих Інтернет Аплікацій (Rich Internet Applications). Багато задач які необхідно виконати для розробки веб аплікацій, у такому вигляді, у якому ви їх знаєте, є або усунутими, або спрощеними. Наприклад, коли розробляти Porcupine аплікацію ви не повинні проектувати БД. Ви тільки повинні спроектувати та реалізувати ваші бізнес об'єкти як Python класи, використовуючи будівничі блоки, які надаються фреймворком (типи даних). Porcupine інтегрується з вбудованою рідною (native) об'єктною БД, разом з Porcupine Object Query Language; мапування не потрібно.

Karrigell

Karrigell це гнучкий Python веб фреймворк, з чітким та інтуїтивним синтаксисом. Він незалежний від БД, ORM чи двигуна шаблонування, та дає програмісту вибрати між різними стилями програмування. Пакет включає потужний вбудований веб сервер, тому немає потреби завантажити, інсталювати та налаштовувати окремий сервер, та написана на Python БД, PyDbLite, яка використовується для демо. Karrigell може бути використаний для роботи з окремими веб серверами (Apache, Xitami, LightTPD); скрипти можуть використовувати всі БД для яких існує API (sqlite, mySql, PostGreSQL, ZODB, та інші). Надається аплікація InstantSite, яка дає змогу легко створювати та редагувати MySQL бази даних та генерувати скрипти, які будуть надавати типові CRUD операції над таблицями.

Spyce

Spyce це технологій подібна до PHP, яка може бути використана для інтеграції Python в веб сторінки. Spyce це безкоштовний проект, поширюється під BSD-подібною ліцензією, з деякими додатковими обмеженнями щодо документації.

Drupy

Drupy це Python порт CMS системи Drupal побудованої на Django. Drupy перед тим був прямим портом PHP-to-Python Drupal-у, але це виявилось досить некерованим. Drupy взяв новий курс в якому він був переписаний поверх Django Framework. Це надасть максимум стабільності та більш зручний цикл розробки.

Zine

Zine це двигун веб логів написаний на Python. Він є з відкритим кодом, безкоштовним та розробляється з фокусом на безпеку та зручність.

Переклад статті з AjaxLine.
  • +8
  • 21 серпня 2009, 15:16
  • zenyk

Коментарі (2)

RSS згорнути / розгорнути
+
0
Планую в майбутньому працювати з Django. Непоганий фреймворк, наче.
avatar

theasus

  • 21 серпня 2009, 17:49
+
+3
Вставлю свої 5 копійок…

Я розробляв на Zope/Plone 10 місяців (великий комерційний мультимедійний проект), облазив його вдовш і поперек (в рамках того що мені було потрібно) і мушу повідомити про наступні проблеми з цим каркасним інструментарієм:
— приготуйтеся на те що Вам доведеться вбити багато часу на розуміння багатьох аспектів роботи Zope;
— Plone буде жерти море ресурсів (оперативну пам'ять і простір на диску під ZODB)
причому залежність нелінійна від кількості об'єктів;
— швидкість отримання проіндексованих даних через ZCatalog («динамічні текі», ініціалізація змінних для шаблонів всередині Plone API (globalize), «портлети»… пряма робота з searchResults) дуже погано оптимізована (я навіть переписував дещо на нижньому рівні) для великої (> 10000) кількості «жирних» об'єктів;
— надто ускладнене API;
— неупорядкована документація (найчастіше це якісь простенькі статті) по Plone;

Можу рекомендувати Plone/Zope для швидкої побудови порталу з мінімальними змінами та невеликим навантаженням.

Щодо Django — система дуже ефективна (доречі серед головних розробників «американьский» українець Адріан Головатий) і легко вивчається. Документація дуже грамотно складена. Серед недоліків — слабуватий базовийц двигун для шаблонів (для написання складних шаблонів з кодом Python всередині треба використовувати спеціальний тег expr з djangosnippets.org); якщо є можливість то краще використовувати jinja2).
Є можливість реалізувати швидкий повнотекстовий пошук (фільтр __search) з сегментним виведенням результатів по сторінках (Paginator) як в Plone та багато чого іншого.

Щодо TurboGears — дуже цікава система для Інет аплікацій з інтенсивним обміном даних з SQL БД. Останнім часом проект TurboGears тісно співпрацює з проектом Pylons. Можливість використання різних компонентів є великою перевагою (досвід можна легко перенести в інший проект — я наприклад в Zope використовував саме SQL Alchemy для деяких нетривіальних рішень).

Написав би ще багато чого :) але вже немаю часу…

Успіхів в роботі!
avatar

Sergiy

  • 21 вересня 2009, 21:21

Тільки зареєстровані й авторизовані користувачі можуть залишати коментарі.