A super-fast templating language that borrows the best ideas from the existing templating languages.
Project description
=========================
Choco Templates for Python
=========================
Choco is a template library written in Python. It provides a familiar, non-XML
syntax which compiles into Python modules for maximum performance. Choco's
syntax and API borrows from the best ideas of many others, including Django
templates, Cheetah, Myghty, and Genshi. Conceptually, Choco is an embedded
Python (i.e. Python Server Page) language, which refines the familiar ideas
of componentized layout and inheritance to produce one of the most
straightforward and flexible models available, while also maintaining close
ties to Python calling and scoping semantics.
Nutshell
========
::
<%inherit file="base.html"/>
<%
rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
% for row in rows:
${makerow(row)}
% endfor
</table>
<%def name="makerow(row)">
<tr>
% for name in row:
<td>${name}</td>\
% endfor
</tr>
</%def>
UI
============
UI tag is inspired by EmberJs Handlebarjs tempalte.
index.html
----------------
::
This is an UI Page
<%@ PostView(post_id)/>
ui/post.html
----------------
::
This is a Post View
Name: ${post.title}
Content: ${post.content}
.. code:: python
def create_ui_container():
from choco.ui import UIContainer, UIModule
ui_container = UIContainer(["template/ui"])
class PostView(UIModule):
default_template = "post.html"
def initialize(self):
self.thing = Thing("Post")
def render(self, post_id):
post = self.thing.getByPostId(post_id)
return {
"post": post
}
ui_container.put_ui("PostView", PostView)
return ui_container
tl2 = lookup.TemplateLookup(directories=["template"], ui_container=create_ui_container())
t12.get_template("index.html").render(post_id=122)
Philosophy
===========
Python is a great scripting language. Don't reinvent the wheel...your templates can handle it !
License
========
Choco is licensed under an MIT-style license (see LICENSE).
Other incorporated projects may be licensed under different licenses.
All licenses allow for non-commercial and commercial use.
Choco Templates for Python
=========================
Choco is a template library written in Python. It provides a familiar, non-XML
syntax which compiles into Python modules for maximum performance. Choco's
syntax and API borrows from the best ideas of many others, including Django
templates, Cheetah, Myghty, and Genshi. Conceptually, Choco is an embedded
Python (i.e. Python Server Page) language, which refines the familiar ideas
of componentized layout and inheritance to produce one of the most
straightforward and flexible models available, while also maintaining close
ties to Python calling and scoping semantics.
Nutshell
========
::
<%inherit file="base.html"/>
<%
rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
% for row in rows:
${makerow(row)}
% endfor
</table>
<%def name="makerow(row)">
<tr>
% for name in row:
<td>${name}</td>\
% endfor
</tr>
</%def>
UI
============
UI tag is inspired by EmberJs Handlebarjs tempalte.
index.html
----------------
::
This is an UI Page
<%@ PostView(post_id)/>
ui/post.html
----------------
::
This is a Post View
Name: ${post.title}
Content: ${post.content}
.. code:: python
def create_ui_container():
from choco.ui import UIContainer, UIModule
ui_container = UIContainer(["template/ui"])
class PostView(UIModule):
default_template = "post.html"
def initialize(self):
self.thing = Thing("Post")
def render(self, post_id):
post = self.thing.getByPostId(post_id)
return {
"post": post
}
ui_container.put_ui("PostView", PostView)
return ui_container
tl2 = lookup.TemplateLookup(directories=["template"], ui_container=create_ui_container())
t12.get_template("index.html").render(post_id=122)
Philosophy
===========
Python is a great scripting language. Don't reinvent the wheel...your templates can handle it !
License
========
Choco is licensed under an MIT-style license (see LICENSE).
Other incorporated projects may be licensed under different licenses.
All licenses allow for non-commercial and commercial use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Choco-1.0.5.zip
(254.8 kB
view details)
Choco-1.0.5.tar.gz
(214.5 kB
view details)
File details
Details for the file Choco-1.0.5.zip
.
File metadata
- Download URL: Choco-1.0.5.zip
- Upload date:
- Size: 254.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc5f4d9eafc202013f0f2821a464a43512b265c2bc923a08e75b0427490e31df |
|
MD5 | 7dc7576ced69c134ef4c3925ee597cd9 |
|
BLAKE2b-256 | 23db2028a7a0e838be7cddb55eed7305d5418c577e854d76a0a0c93c3adcf5fe |
File details
Details for the file Choco-1.0.5.tar.gz
.
File metadata
- Download URL: Choco-1.0.5.tar.gz
- Upload date:
- Size: 214.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a51b7f9f7bb91c3925135ec4b973201a05a72da2d5cac068a13720391c8b08ae |
|
MD5 | 86e748041f5cab65f5a98e16cba937d6 |
|
BLAKE2b-256 | 9841c270306772b9459020b44eca26d995903919b3488f096950460ff7fd58d8 |