[Tutor] Weird error message
Mike Hansen
mhansen at cso.atmel.com
Wed Nov 5 09:49:42 EST 2003
If you need a HTML template, you might look at htmltmpl at
http://htmltmpl.sourceforge.net/. It the same templating syntax as
Perl's HTML::Template. However, if you want to brew your own templating
system as a learning exercise, then never mind. Although it might be
worth looking at to see how it's implemented.
Mike
> Subject:
> [Tutor] Weird error message
> From:
> Conrad Koziol <arkamir at softhome.net>
> Date:
> Tue, 04 Nov 2003 15:43:36 -0800
> To:
> tutor at python.org
>
>
>Hey thanks for the tip Danny but it still doesnt work. This is the last
>bit of the code
>
> posts = posttemplate
> subsitutes = ['NAME', 'DATE', 'SUBJECT', 'POST']
> list_of_posts = []
> content1 = re.escape('<!--INSERT NAME HERE-->')
> content2 = re.escape('<!--INSERT DATE HERE-->')
> content3 = re.escape('<!--INSERT SUBJECT HERE-->')
> content4 = re.escape('<!--INSERT POST HERE-->')
>
> for post in postsinfo:
> for value in range(4):
> posts = re.sub(content1, post[1], posts)
> posts = re.sub(content2, post[2], posts)
> posts = re.sub(content3, post[3], posts)
> posts = re.sub(content4, post[4], posts)
>
> list_of_posts.append(posts)
> posts = posttemplate
>
>I still get this error though:
>
>
>Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "retrieveposts.py", line 44, in retrieve_posts
> posts = re.sub(content1, post[1], posts)
> File "/usr/lib/python2.2/sre.py", line 143, in sub
> return _compile(pattern, 0).sub(repl, string, count)
> File "/usr/lib/python2.2/sre.py", line 257, in _subx
> template = _compile_repl(template, pattern)
> File "/usr/lib/python2.2/sre.py", line 242, in _compile_repl
> p = sre_parse.parse_template(repl, pattern)
> File "/usr/lib/python2.2/sre_parse.py", line 644, in parse_template
> s = Tokenizer(source)
> File "/usr/lib/python2.2/sre_parse.py", line 186, in __init__
> self.__next()
> File "/usr/lib/python2.2/sre_parse.py", line 188, in __next
> if self.index >= len(self.string):
>TypeError: len() of unsized object
>
>This the the templatefile which posts equals:
>
><div class="postholder">
> <div class="name">
> <br>
> <!--INSERT NAME HERE-->
> <br>
> <p>Posted on: <!--INSERT DATE HERE--> </p>
> </div>
> <div class="subject">
>
> <!--INSERT SUBJECT HERE-->
> </div>
> <div class="post">
> <br>
> <br>
>
> <!--INSERT POST HERE-->
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> </div>
></div>
>
>When I use this code I also get the same error, Except this code is a
>lot prettier so I'd prefer to use this :). Another problem with this
>code is I cant get it to replace the %s in expression with the data. I
>think
>it has to do with it not finding the regular expression. Any help is
>greatly appreciated.
>
> posts = posttemplate
> subsitutes = ['NAME', 'DATE', 'SUBJECT', 'POST']
> list_of_posts = []
> expression = '<!--INSERT %s HERE-->'
>
> for post in postsinfo:
> for value in range(4):
>
> posts = re.sub((expression, post[value], posts) % subsitutes[value])
>
> list_of_posts.append(posts)
> posts = posttemplate
>
>Thanks a lot,
>
> Conrad Koziol
>
>
>
More information about the Tutor
mailing list