faqts : Computers : Programming : Languages : Python : Snippets

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

1 of 1 people (100%) answered Yes

Entry

Template for CGI

Jul 5th, 2000 10:02
Nathan Wallace, Hans Nowak, Snippet 271, Marco Musazzi


"""
Packages: networking.internet.cgi
"""
"""
>> I am a newbie to Python and I have a question.  I want a CGI script that
>> will read a file template and replace certain words with variables.  Ii
>> tried putting the variable names in the file but it is read as palin
text.
>> Is there a way to embed variables into a teplate or a replace function in
>> Python?  Thank you for any help you give.
You can use something like this:
template file:
your template text  your template text %variable% your template text
%variable2%
%xxx% is the placeholder for "variable" xxx (you can replace % with what
you
like)
in your python code:
"""
import string
template = open("yourtemplatefile")
templateText = template.read()
template.close()
templateText = string.replace(templateText, "%variable%",
str(value_of_variable))
templateText = string.replace(templateText, "%variable2%",
str(value_of_variable2))
# an so on....
# printing a minimal http header
print "Content-type: text/html"
print
# printing the template filled with the variables
print templateText
# You can do it better using a value-filled dictionary:
val = {"variable":value1, "variable2":value2, } # etc.....
# you may read this dict from a shelv db for example...
for k in val.keys():
    templateText = string.replace(templateText, "%"+ k + "%", val[k] )
# printing a minimal http header
print "Content-type: text/html"
print
# printing the template filled with the variables
print templateText
# And you can use both the mothods at the same time...
# happy coding
# Marco