In Grok every model object has its own URL with multiple views.
Python CSS
Switch branches/tags
luciano-tutorial-mergepoint-0 backups/wosc-utility-subclassing@80882 backups/wosc-static-resources@70754 backups/ulif-viewinfo@93945 backups/ulif-testsetup@85823 backups/ulif-testsetup-pre0.13@85824 backups/ulif-reference@80894 backups/ulif-paster-loginhtml@101872 backups/ulif-no-testsetup@85822 backups/ulif-introspector@88169 backups/ulif-i18n@93947 backups/ulif-grokdocs@85994 backups/ulif-grokdocs-0.13@85969 backups/ulif-adminui@80893 backups/ulif-adminless@93944 backups/timte-json@74269 backups/sylvain-grokcore-viewlets@94111 backups/sylvain-grokcore-formlib@91597 backups/snowsprint-viewlets@84108 backups/regebro-guido-templates@84107 backups/philikon-reload@80886 backups/philikon-refactor-templatereg@84708 backups/philikon-methodgrokker@87022 backups/philikon-grokking-tests@78330 backups/philikon-grokcore.component@86083 backups/philikon-ftest-layer-does-fixture-setup@79367 backups/philikon-eggs2@77738 backups/philikon-eggification@77737 backups/philikon-decl-dir-rules@86748 backups/neanderthal-reference-documentation@80655 backups/luciano-fields-class-removal@79762 backups/kteague-getapp@106046 backups/ksmith_mcweekly-viewlets@84106 backups/ksmith_mcweekly-viewlet@74883 backups/ksmith_mcweekly-layers@84105 backups/ksmith_mcweekly-layers-011@79773 backups/ksmith_mcweekly-boundpagetemplate@84104 backups/jw-viewsupport-mixin@106061 backups/jw-viewlets-fix@88805 backups/jw-skip-tests@78342 backups/jw-simpler-skin-registration@89199 backups/jw-refer-to-permission-class@86071 backups/jw-proper-components-for-role-permission@79761 backups/jw-philipp-using-ndir-directives@86425 backups/jw-fix-viewlet-sorting@86835 backups/jw-fix-url-method-on-viewlets@86785 backups/jw-define-roles-directive@79294 backups/jw-define-rest-like-skins@94087 backups/jw-adapter-decorator@76920 backups/jspaans-traversableattrs@86648 backups/jasper-grokdoctool@93948 backups/grok-martian@80880 backups/gotcha-configuration-actions@81234 backups/gocept.zope3instance-recipe@80885 backups/ftesting-security@70713 backups/faassen-rest@81530 backups/faassen-martian@77306 backups/faassen-index@80879 backups/darrylcousins-martian-layers@77272 backups/darrylcousins-branch@79285 backups/darrylcousins-branch@77276 backups/darrylcousins-branch@77274 backups/d2m-ztk-support@108256 backups/ctheune-pagelets@84210 backups/christiancodeviewsplit@102957 backups/brandon-rss@88491 backups/brandon-grokcore.component@85992 1.14.1 1.14 1.13 1.12 1.11.3 1.11.2 1.11.1 1.11 1.10.3 1.10.2 1.10.1 1.10 1.9 1.8 1.7 1.6 1.5 1.4.3 1.4.2 1.4.1 1.4 1.3 1.2.1 1.2 1.2a 1.1.1 1.1 1.1rc1 1.1a2 1.1a1 1.0.2 1.0.1 1.0
Nothing to show
Clone or download
Pull request Compare This branch is 16 commits ahead, 17 commits behind zopefoundation:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
etc
grokwiki
src/grok
.gitignore
.travis.yml
CHANGES.txt
COPYRIGHT.txt
CREDITS.txt
INSTALL.txt
LICENSE.txt
MANIFEST.in
README.rst
TODO.txt
bootstrap.py
buildout.cfg
documentation.cfg
grokwiki.cfg
setup.py

README.rst

Grok

What is grok?

Grok is a smashing web framework based on the Zope Toolkit

Grok uses the Component Architecture and builds on Zope concepts like content objects (models), views, and adapters. Its simplicity lies in using convention over configuration and sensible defaults when wiring components together. That means neither a configuration language like ZCML nor a lot of repetition are needed to create a web application with grok.

Who is grok?

Grok is a friendly caveman from the Stone Age. He has a big club that he hunts mammoths with. He will also use this club to smash anything he doesn't like.

"ME GROK SMASH ZCML!"

Getting grok

The easiest way to get started with grok is to use the grok.install package

Then follow the instructions in installation instructions