Grok web application framework
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Grok web application framework

on

  • 2,325 views

 

Statistics

Views

Total Views
2,325
Views on SlideShare
2,284
Embed Views
41

Actions

Likes
0
Downloads
9
Comments
0

2 Embeds 41

http://plug.org.ua 24
http://www.plug.org.ua 17

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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'ом
  • 11.
    • доданий новий інтерфейс адміністрування (grok.admin)
    • всі об'єкти по замовчуванню є доступними
    • шаблони (ZPT) по замовчуванню лежать в директорії «modulename_templates»
    • статичні ресурси лежать в директорії «static»
  • 12. Cтарт із Grok'ом
      • Лише декілька команд і перша grok аплікація готова:
      • easy_install grokproject
      • grokproject HelloWorld
      • cd HelloWorld
      • bin/zopectl fg
  • 13. Можна відкривати браузер
  • 14. Головна сторінка аплікації
  • 15. app.py import grok class HelloWorld(grok.Application, grok.Container): pass class Index(grok.View): pass # see app_templates/index.pt
  • 16. 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>
  • 17. 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>
  • 18. Grok-магія
    • сканування пітонівського коду і виклик Grokker'ів для класів, що наслідуються від grok.* класів
    • Grokker'и регіструють компоненти відповідно до директив, які застосовані до них
    • регістрація аналогічна до ZCML (викликається context.action(...))
  • 19. Базові класи
    • Application, Model, Container
    • Adapter, MultiAdapter
    • GlobalUtility, LocalUtility
    • View, Form, Traverser, Skin, Layer, ViewletManager, Viewlet, Permission, Role
    • RESTProtocol, REST, JSONView, XMLRPC
    • та інші...
  • 20. Директиви
    • context, adapts, implements, provides, name, subscribe, global_utility, local_utility
    • layer, template, templatedir
    • title, require
    • baseclass
    • та інші...
  • 21. Приклад адаптера 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)
  • 22. Розширення Grok
    • що робити, коли Grok не вміє регіструвати твій компонент?
    • писати ZCML?
    • ні, cтворити базовий клас і Grokker для цього компонента (і цим зробити Grok ще могутнішим)
  • 23. Дякую за увагу!