Grok web application framework

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Grok web application framework - Presentation Transcript

    1. now even cavemen can use Zope 3 Bogdan Koval © Quintagroup, 2008
    2. Що таке Zope 3?
      • сервер (каркас) веб-аплікацій
      • колекція вільного програмного забезпечення, частини якого можна легко повторно використати
      • проект, що в активній розробці з 2001 року та має велику спільноту
    3. Можливості Zope 3
      • компонентна архітектура
      • об'єктна база даних (ZODB)
      • XHTML шаблони (ZPT)
      • автоматична генерація форм
      • інтернаціоналізація (i18n, l10n)
      • безпека
      • каталогізація
      • тестування
    4. Недоліки Zope 3
      • складність швидкого старту із Zope 3
      • компоненти зв'язуються між собою за допомогою ZCML, що вимагає редагування додаткових конфігураційних файлів
      • ZCML сповільнює процес розробки — кожний новий компонент вимагає своїх директив
    5. Що потребує покращення в Zope 3
      • спростити розробку аплікацій як для початківців, так і для досвідчених розробників
      • пришвидшити процес розробки
    6. Шлях покращення
      • домовленості по структурі та вмісту пітонівських пакетів та модулів
      • відсутність конфігурації через ZCML
    7. Ось тут і з'являється Grok
    8. Хто такий Grok? Grok – дружня печерна людина із Кам'яного Віку. Він має велику булаву, якою полює на мамонтів, а крім того ще й трощить нею все, що йому не подобається (особливо в Zope 3).
    9. Що таке Grok?
        • Каркас веб-аплікацій, побудований на базі Zope 3 та орієнтований на початківців і досвідчених розробників. Grok робить акцент саме на швидку розробку аплікацій, додаючи нові можливості та зберігаючи все, що є в Zope 3.
    10. «ME GROK SMASH ZCML»
      • ZCML вже не обов'язковий
      • ти використовуєш домовленості запропоновані Grok'ом, а він аналізує твій пітонівський код і конфігурує твої компоненти
      • результат той самий, що й із явним конфігуруванням ZCML'ом
      • доданий новий інтерфейс адміністрування (grok.admin)
      • всі об'єкти по замовчуванню є доступними
      • шаблони (ZPT) по замовчуванню лежать в директорії «modulename_templates»
      • статичні ресурси лежать в директорії «static»
    11. Cтарт із Grok'ом
        • Лише декілька команд і перша grok аплікація готова:
        • easy_install grokproject
        • grokproject HelloWorld
        • cd HelloWorld
        • bin/zopectl fg
    12. Можна відкривати браузер
    13. Головна сторінка аплікації
    14. app.py import grok class HelloWorld(grok.Application, grok.Container): pass class Index(grok.View): pass # see app_templates/index.pt
    15. index.pt <html> <head> </head> <body> <h1>Congratulations!</h1> <p>Your Grok application is up and running. Edit <code>HelloWorld/app_templates/index.pt</code> to change this page.</p> </body> </html>
    16. configure.zcml <configure xmlns=&quot;http://namespaces.zope.org/zope&quot; xmlns:grok=&quot;http://namespaces.zope.org/grok&quot;> <include package=&quot;grok&quot; /> <includeDependencies package=&quot;.&quot; /> <grok:grok package=&quot;.&quot; /> </configure>
    17. Grok-магія
      • сканування пітонівського коду і виклик Grokker'ів для класів, що наслідуються від grok.* класів
      • Grokker'и регіструють компоненти відповідно до директив, які застосовані до них
      • регістрація аналогічна до ZCML (викликається context.action(...))
    18. Базові класи
      • Application, Model, Container
      • Adapter, MultiAdapter
      • GlobalUtility, LocalUtility
      • View, Form, Traverser, Skin, Layer, ViewletManager, Viewlet, Permission, Role
      • RESTProtocol, REST, JSONView, XMLRPC
      • та інші...
    19. Директиви
      • context, adapts, implements, provides, name, subscribe, global_utility, local_utility
      • layer, template, templatedir
      • title, require
      • baseclass
      • та інші...
    20. Приклад адаптера import grok from zope import interface class Cave(grok.Model): pass class IHome(interface.Interface): pass class Home(grok.Adapter): grok.context(Cave) grok.implements(IHome) class IFireplace(interface.Interface): pass class Fireplace(grok.Adapter): grok.implements(IFireplace, IHome) grok.provides(IFireplace)
    21. Розширення Grok
      • що робити, коли Grok не вміє регіструвати твій компонент?
      • писати ZCML?
      • ні, cтворити базовий клас і Grokker для цього компонента (і цим зробити Grok ще могутнішим)
    22. Дякую за увагу!

    + QuintagroupQuintagroup, 2 years ago

    custom

    654 views, 0 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 654
      • 636 on SlideShare
      • 18 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds
    • 13 views on http://plug.org.ua
    • 5 views on http://www.plug.org.ua

    more

    All embeds
    • 13 views on http://plug.org.ua
    • 5 views on http://www.plug.org.ua

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories