Lably
Skip to content

Spyce (software)

Python-based templating system

  • 2 min read
  • 3 chapters

Related on Lably

Through Python (programming language), Web page and Delimiter

Common Spyce embedding methods

Since Python uses indentation to determine the beginning and end of a block, Spyce includes several ways to embed Python code. Shown below are the three most common ways. Spyce supports ASP/JSP-style delimiters (<% and %>) as well as double braces ([[ and ]])

  1. Python 'chunks' (multiple Python statements with traditional indentation):
    <span id="mwMw"></span>It's <span class="nt" id="mwNA"><b></span>[[<span class="nt" id="mwNQ">\</span> <span class="nt" id="mwNg">from time import asctime, localtime</span> <span class="nt" id="mwNw">print(asctime(localtime()))</span> ]]<span class="nt" id="mwOA"></b></span> right now!

    or

    <span id="mwOw"></span>It's<span class="w" id="mwPA"> </span><span class="nt" id="mwPQ"><b></span><span class="k" id="mwPg"><%\</span> <span class="n" id="mwPw">from</span><span class="w" id="mwQA"> </span><span class="n" id="mwQQ">time</span><span class="w" id="mwQg"> </span><span class="kn" id="mwQw">import</span><span class="w" id="mwRA"> </span><span class="nn" id="mwRQ">asctime</span><span class="p" id="mwRg">,</span><span class="w" id="mwRw"> </span><span class="n" id="mwSA">localtime</span> <span class="nf" id="mwSQ">print</span><span class="p" id="mwSg">(</span><span class="n" id="mwSw">asctime</span><span class="p" id="mwTA">(</span><span class="n" id="mwTQ">localtime</span><span class="p" id="mwTg">()))</span> <span class="k" id="mwTw">%></span><span class="nt" id="mwUA"></b></span><span class="w" id="mwUQ"> </span>right<span class="w" id="mwUg"> </span>now!
  2. Individual statements within delimiters (indentation not required):
    <span id="mwVQ"></span> [[<span class="nt" id="mwVg">for x in xrange(3): { </span>]] <span class="nt" id="mwVw"><b></span>Hello, <span class="nt" id="mwWA"></b></span> [[<span class="nt" id="mwWQ">} </span>]]

    or

    <span id="mwXA"></span><span class="w" id="mwXQ"> </span><span class="k" id="mwXg"><%</span><span class="w" id="mwXw"> </span><span class="k" id="mwYA">for</span><span class="w" id="mwYQ"> </span><span class="n" id="mwYg">x</span><span class="w" id="mwYw"> </span><span class="n" id="mwZA">in</span><span class="w" id="mwZQ"> </span><span class="nf" id="mwZg">xrange</span><span class="p" id="mwZw">(</span><span class="mi" id="mwaA">3</span><span class="p" id="mwaQ">):</span><span class="w" id="mwag"> </span><span class="p" id="mwaw">{</span><span class="w" id="mwbA"> </span><span class="k" id="mwbQ">%></span> <span class="w" id="mwbg"> </span><span class="nt" id="mwbw"><b></span>Hello,<span class="w" id="mwcA"> </span><span class="nt" id="mwcQ"></b></span> <span class="w" id="mwcg"> </span><span class="k" id="mwcw"><%</span><span class="w" id="mwdA"> </span><span class="p" id="mwdQ">}</span><span class="w" id="mwdg"> </span><span class="k" id="mwdw">%></span>
  3. Expressions evaluation
    <span id="mweg"></span><span class="nt" id="mwew"><b></span>I am [[<span class="nt" id="mwfA">= 5*3 </span>]] years old.<span class="nt" id="mwfQ"></b></span>

    or

    <span id="mwgA"></span><span class="nt" id="mwgQ"><b></span>I<span class="w" id="mwgg"> </span>am<span class="w" id="mwgw"> </span><span class="k" id="mwhA"><%=</span><span class="w" id="mwhQ"> </span><span class="mi" id="mwhg">5</span><span class="o" id="mwhw">*</span><span class="mi" id="mwiA">3</span><span class="w" id="mwiQ"> </span><span class="k" id="mwig">%></span><span class="w" id="mwiw"> </span>years<span class="w" id="mwjA"> </span>old.<span class="nt" id="mwjQ"></b></span>

The techniques above can be freely mixed and embedded in any HTML document.

Any legal Python code can be embedded and any Python module can be imported, which makes it especially suited for writing very robust applications (using exception handling and unit testing single modules individually).

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication