author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Thu, 22 Sep 2011 19:02:36 +0200 | |
branch | stable |
changeset 7836 | 0ada13ce2e16 |
parent 5394 | 105011657405 |
child 8032 | bcb87336c7d2 |
permissions | -rw-r--r-- |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8 -*- |
2544
282261b26774
[doc] fixed some dangling internal links
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
2172
diff
changeset
|
2 |
|
5301
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
3 |
URL publishing |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
4 |
-------------- |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
5 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
6 |
(:mod:`cubicweb.web.views.urlpublishing`) |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
7 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
8 |
.. automodule:: cubicweb.web.views.urlpublishing |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
9 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
10 |
.. autoclass:: cubicweb.web.views.urlpublishing.URLPublisherComponent |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
11 |
:members: |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
12 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
13 |
URL rewriting |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
14 |
------------- |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
15 |
|
5301
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
16 |
(:mod:`cubicweb.web.views.urlrewrite`) |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
17 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
18 |
.. autoclass:: cubicweb.web.views.urlrewrite.URLRewriter |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
19 |
:members: |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
20 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
21 |
.. autoclass:: cubicweb.web.views.urlrewrite.SimpleReqRewriter |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
22 |
:members: |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
23 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
24 |
.. autoclass:: cubicweb.web.views.urlrewrite.SchemaBasedRewriter |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
25 |
:members: |
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
26 |
|
f4219a6e62e3
[doc/book] stuff a bit the publishing process (including various docstrings)
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
5266
diff
changeset
|
27 |
|
5313
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
28 |
``SimpleReqRewriter`` is enough for a certain number of simple cases. If it is not sufficient, ``SchemaBasedRewriter`` allows to do more elaborate things. |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
29 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
30 |
Here is an example of ``SimpleReqRewriter`` usage with plain string: |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
31 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
32 |
.. sourcecode:: python |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
33 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
34 |
from cubicweb.web.views.urlrewrite import SimpleReqRewriter |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
35 |
class TrackerSimpleReqRewriter(SimpleReqRewriter): |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
36 |
rules = [ |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
37 |
('/versions', dict(vid='versionsinfo')), |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
38 |
] |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
39 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
40 |
When the url is `<base_url>/versions`, the view with the __regid__ `versionsinfo` is displayed. |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
41 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
42 |
Here is an example of ``SimpleReqRewriter`` usage with regular expressions: |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
43 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
44 |
.. sourcecode:: python |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
45 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
46 |
from cubicweb.web.views.urlrewrite import ( |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
47 |
SimpleReqRewriter, rgx) |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
48 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
49 |
class BlogReqRewriter(SimpleReqRewriter): |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
50 |
rules = [ |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
51 |
(rgx('/blogentry/([a-z_]+)\.rss'), |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
52 |
dict(rql=('Any X ORDERBY CD DESC LIMIT 20 WHERE X is BlogEntry,' |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
53 |
'X creation_date CD, X created_by U, ' |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
54 |
'U login "%(user)s"' |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
55 |
% {'user': r'\1'}, vid='rss'))), |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
56 |
] |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
57 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
58 |
When a url matches the regular expression, the view with the __regid__ |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
59 |
`rss` which match the result set is displayed. |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
60 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
61 |
Here is an example of ``SchemaBasedRewriter`` usage: |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
62 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
63 |
.. sourcecode:: python |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
64 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
65 |
from cubicweb.web.views.urlrewrite import ( |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
66 |
SchemaBasedRewriter, rgx, build_rset) |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
67 |
|
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
68 |
class TrackerURLRewriter(SchemaBasedRewriter): |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
69 |
rules = [ |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
70 |
(rgx('/project/([^/]+)/([^/]+)/tests'), |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
71 |
build_rset(rql='Version X WHERE X version_of P, P name %(project)s, X num %(num)s', |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
72 |
rgxgroups=[('project', 1), ('num', 2)], vid='versiontests')), |
c4fe397379c7
[doc/book] complete the urlrewrite sections with examples
Stephanie Marcu <stephanie.marcu@logilab.fr>
parents:
5301
diff
changeset
|
73 |
] |