MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap
Revision 5 as of 2013-12-30 20:05:40
  • Python
  • Jinja2

Jinja2

Jinja2 is a modern and designer friendly templating language for Python, modelled after Django’s templates.

Slackware 14 installation

  • wget https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.1.tar.gz

  • cp Jinja2-2.7.1.tar.gz /tmp
  • tar xvzf Jinja2-2.7.1.tar.gz
  • cd Jinja2-2.7.1
  • python setup.py build
  • python setup.py install

Check installation

python
Python 2.7.3 (default, Jul  3 2012, 21:16:07) 
[GCC 4.7.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import jinja2
>>> jinja2.__version__
'2.7.1'
>>> quit()

Jinja2 test

mkdir -p /var/www/htdocs/jinja2test/templates cd /var/www/htdocs/jinja2test

File /var/www/htdocs/jinja2test/jinja2test.wsgi

   1 import sys
   2 sys.stdout = sys.stderr
   3 import cherrypy
   4 
   5 from jinja2 import Environment, FileSystemLoader
   6 env = Environment(loader=FileSystemLoader('/var/www/htdocs/jinja2test/templates'))
   7 
   8 cherrypy.config.update({'environment': 'embedded'})
   9 
  10 class Jinja2Test(object):
  11     @cherrypy.expose
  12     def index(self):
  13         return "Hello World Jinja2Test!!!!"
  14     @cherrypy.expose
  15     def add(self,param1,param2):
  16        return str( int(param1)+int(param2) )
  17     @cherrypy.expose
  18     def template(self):
  19         t = env.get_template('test.html')
  20         navItems=[]
  21         for i in range(1,10):
  22                 navItems.append( {'href':'aaa','caption':'cap %d'%(i) } )
  23         return t.render( variable="ASDDDD" , navigation=navItems )
  24 
  25 jjtest = Jinja2Test()
  26 application = cherrypy.Application(jjtest, script_name=None, config=None)

File /var/www/htdocs/jinja2test/templates/test.html

   1 <html>
   2     <head></head>
   3     <body>
   4         <ul id="navigation">
   5         {% for item in navigation %}
   6         <li>
   7           <a href="{{item.href}}">{{item.caption}}</a> 
   8         </li>
   9         {% endfor %}
  10         </ul>
  11         <h1>My webpage {{variable}} </h1>
  12         </body>
  13 </html>

Add virtual host in /etc/httpd/vhosts.conf

<VirtualHost *:80>
    ServerName localhostjinja2test
    DocumentRoot "/var/www/htdocs/jinja2test"
    WSGIScriptAlias / /var/www/htdocs/jinja2test/jinja2test.wsgi
    <Directory "/var/www/htdocs/jinja2test">
      Require local
    </Directory>
</VirtualHost>

Add host to /etc/hosts

127.0.0.1 localhostjinja2test

Restart apache

  • /etc/rc.d/rc.httpd restart

Open URLs:

  • http://localhostjinja2test/

  • http://localhostjinja2test/add/3/4

  • http://localhostjinja2test/template

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01