Compile Cheetah Template on Windows

brianrpsgt1 brianlong at cox.net
Wed Nov 28 23:33:53 EST 2007


Tim, thank you very much for the reply.  The 'cheetah' function is now
working!

I am still having a problem creating the file.  I continually get
errors.  I am sure that it is something very simple.

Below is the code, please guide me in the right direction.... ::

import psycopg2, psycopg2.extensions
from Cheetah.Template import Template
import operator
import os
from SafetyNet import SafetyNet

filename = open("C:\Python25\Lib\site-packages\PSN
\InstalledDevices.html")

db = psycopg2.connect("dbname='XXX' user='XXX' host='XXX'")

pocmonitors_cur = db.cursor()
pocmonitors_cur.execute("""SELECT pocmonitor_name, pocmonitor_sn FROM
pocmonitor ORDER BY pocmonitor_name""")

pocmonitors = []

for i in range(pocmonitors_cur.rowcount) :
    pocmonitors.append(pocmonitors_cur.fetchone())
pocmonitors_cur.close()
db.close()

total_results = len(pocmonitors)

nameSpace = {'title': 'First Cheetah Example', 'pocmonitors':
pocmonitors, 'total_results': total_results}

output = Template(file='C:\Python25\Lib\site-packages\PSN
\SafetyNet.tmpl', searchList=[nameSpace])

print output


filename.write(output)



Thanks for the help!

B



Tim Roberts wrote:
> brianrpsgt1 <brianlong at cox.net> wrote:
> >
> >I have been able to successful pull info from a MySQL DB, get the
> >results and output them in an HTML format using Cheetah to the screen
> >using IDLE.  I am doing this on a Windows Laptop, running WinXP,
> >Python 2.5 and the latest version of Cheetah.
> >
> >I have two questions:
> >1. How and where do you compile Cheetah templates in Windows?  The
> >command in the docs is cheetah compile a, however, I believe that this
> >is for Linux.  This does nothing in a DOS Prompt.  Please provide the
> >info for this command in Windows.
>
> The Cheetah installation should have created scripts called "cheetah" and
> "cheetah-compile" in your Python25\Scripts directory.  The issue you have
> is that they aren't on your path.
>
> One answer is to copy Python25\Scripts\cheetah to \Windows\cheetah.py and
> Python25\Scripts\cheetah-compile to \Windows\cheetah-compile.py.  Then you
> can type "cheetah.py compile xxx" or "cheetah-compile.py xxx".
>
> However, you don't have to compile them in advance.  You can do "from
> Cheetah.Template import Template" and compile them on the fly, with
>    tmpl = Template( file='page.tmpl' )
>
> >2. How do I output the HTML to a file?  I tried the following:
> >
> >FILE = open(filename, "wt")
> >FILE.writelines(output)
> >FILE.close()
> >
> >I get an error though that states that writelines() requires an
> >interable argument
>
> Just use FILE.write( output ).
> --
> Tim Roberts, timr at probo.com
> Providenza & Boekelheide, Inc.



More information about the Python-list mailing list