Classes Again !

rzed Dick.Zantow at lexisnexis.com
Wed Apr 17 10:32:46 EDT 2002


"Graeme Matthew" <graeme.matthew at unite.com.au> wrote in message
news:3cbd7527$1 at news.comindico.com.au...
> Hi all  I am going mad again, but making progress, been on a problem for
1
> hour already and cannot see the cause ! please could someone help
>
> The getSubDocument method in my template class is failing suddenly , i
dont
> have a clue why ! thanks a mil
>
> ERROR:
>
> Traceback (most recent call last):
>   File "C:\www\cgi-bin\main.cgi", line 10, in ?
>     data = t.getSubDocument('C:/www/templates/template_org_query.html')
> AttributeError: Template instance has no attribute 'getSubDocument'
>

There are some errors in the code: "none" is not "None", and in the line
>         prog = re.compile('<body>(.*)</body>',re.DOTALL,re.IGNORECASE)
the comma before the second "re." should of course be a vertical bar (
'|' ). When I
corrected those, it seemed to work better.

> CGI SCRIPT BELOW
>
> #! C:/python22/python.exe
>
> import sys
> sys.path.insert(0,'C:/www/classes/')
> import Template
>
> t = Template.Template('C:/www/templates/template_main.html')
> t.loadTemplate()
> data = "hello mom"
> data = t.getSubDocument('C:/www/templates/template_org_query.html')
> t.replaceDirective('workbench',data)
>
> print "Content-type: text/html\n\n";
> print t.document()
>
> CLASS BELOW:
>
> import re
>
> class Template:
>
>     def __init__(self, filename):
>
>         self.filename = filename
>         self.subdoc = none
>
>     def loadTemplate(self):
>         f = open(self.filename,'rb')
>         self.data = f.read()
>         f.close
>
>     def replaceDirective(self, directive, data):
>         prog = re.compile('<!--\s*' + directive + '\s*-->.*?<!--\s*' +
> directive + '\s*-->',re.DOTALL | re.IGNORECASE)
>         self.data = prog.sub(data,self.data)
>
>     def document(self):
>         return self.data
>
>     def getSubDocument(self, fil):
>
>         f = open(fil,'rb')
>         self.subdoc = f.read()
>         f.close
>
>         prog = re.compile('<body>(.*)</body>',re.DOTALL,re.IGNORECASE)
>         result = prog.match(self.subdoc)
>
>         if result != none:
>             self.subdoc = result.group(0)
>         else:
>             self.subdoc = '<parse error: no data, is it the correct file
?'
>
>         return self.subdoc
>
>
>





More information about the Python-list mailing list