Skip to main content

Template engine with simple data structure

Project description

`flexable` is template engine with simple data structure.
That is made up of str, unicode, dict, tuple, list and Element.

usage
merge structured values to xhtml template.

>>> t = Template()
>>> t.fromstring("<div/>")
>>> str(t)
'<div/>'

>>> t.merge('hello')
>>> str(t)
'<div>hello</div>'

>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':['1', '2']})
>>> str(t)
'<div><span class="y">1</span><span class="y">2</span></div>'

>>> t = Template()
>>> t.fromstring("<div><span class='y'/></div>")
>>> t.merge({'y':[({'@id':'m1'}, '1'),
... ({'@id':'m2'}, '2')]})
>>> str(t)
'<div><span class="y" id="m1">1</span><span class="y" id="m2">2</span></div>'

>>> t.fromstring("<div><div class='box'><span class='x'/><span
class='y'/></div></div>")
>>> t.merge({'box':[{'x':'1', 'y':'2'},
... {'x':'3', 'y':'4'}]})
>>> str(t)
'<div><div class="box"><span class="x">1</span><span
class="y">2</span></div><div class="box"><span class="x">3</span><span
class="y">4</span></div></div>'

>>> t.fromstring("<div/>")
>>> t.merge(ET.Element('span'))
>>> str(t)
'<div><span/></div>'

To use flexable as template engine for wsgi application, you can use
flexable.plugin:FlexablePlugin.
And that is python.template_engine entry point.

Example on TurboGears

controllers.py::

@expose(template="flexable:flexable_example.templates.example")
def example(self):
return dict(message="This is flexable message.",
contents=""" This is main contents from controller.
flexable is merge values to given html template with class attribute.
""")

flexable_example/templates/example.html::

&lt;?xml version="1.0"?>
&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;body>
&lt;h1>Flexable Template&lt;/h1>
&lt;span class="message">&lt;/span>
&lt;p class="contents">&lt;/p>
&lt;span class="widget"/>
&lt;/body>
&lt;/html>

you get:

&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;body>
&lt;h1>Flexable Template&lt;/h1>
&lt;span class="message">This is flexable message.&lt;/span>
&lt;p class="contents"> This is main contents from controller.
flexable is merge values to given html template with class attribute.
&lt;/p>
&lt;/body>
&lt;/html>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flexable-0.3dev.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

flexable-0.3dev-py2.5.egg (12.9 kB view details)

Uploaded Source

File details

Details for the file flexable-0.3dev.tar.gz.

File metadata

  • Download URL: flexable-0.3dev.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for flexable-0.3dev.tar.gz
Algorithm Hash digest
SHA256 f203fc8ab86c8568bf417c6e87f38e350c435365a595f377a46f2629b67c5c1c
MD5 96dbe22524fe9bda2fd84ccfbc0ab9e3
BLAKE2b-256 a056427ee394c48cf675ba43714ce1514e1596f219fc50be9d7b4ca5d9b735a3

See more details on using hashes here.

File details

Details for the file flexable-0.3dev-py2.5.egg.

File metadata

File hashes

Hashes for flexable-0.3dev-py2.5.egg
Algorithm Hash digest
SHA256 54d110483ef497d61e2091832f7f03986012714372da21c4102825c9c556cf60
MD5 1b363408fca8dc15493933a154f4c688
BLAKE2b-256 8fc2ee3b9e3f16e95137271be6e5f1183cb022c2014501b015ec08fbded3a526

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page