dynamically creating html code with python...
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Mon Aug 11 16:25:25 EDT 2008
anartz at anartz.cjb.net a écrit :
> Sorry, my fault...
>
> I am trying to build a web application for data analysis. Basically
> some data will be read from a database and passed to a python script
> (myLibs.py) to build an image as follows.
>
> [CODE]
> f=urllib.urlopen("http://localhost/path2Libs/myLibs.py",urllib.urlencode(TheData))
> print "Content-type: image/png\n"
> print f.read()
> f.close()
> [/CODE]
>
> This section behaves as expected, and I can see the chart on the
> web-page.
Indeed. Using an http request to call a local script is totally
braindead, but this is another problem.
> Now, I would like to add some text and possibly more charts
> (generated in the same way) to my web-page.
Which one ? What you showed is a way to generate an image resource (with
mime-type 'image/png'), not an html page resource (mime-type :
text/html). Images resources are not directly embedded in html pages -
they are *referenced* from web pages (using an <img> tag), then it's up
to the user-agent (usually, the browser) to emit another http request to
get the image.
> This is what I need help
> with.
Not tested (obviously), but what you want is something like:
print "Content-type: text/html\n"
print """
<html>
<head>
<title>data analysis site</title>
</head>
<body>
<p>This is a trial test</p>
<img src="http://localhost/myLibs/ChartLib.py?%s" />
</body>
</html>
""" % urllib.urlencode(TheData)
> My question: How can I use python to dynamically add descriptive
> comments (text), and possibly more charts to the web-page?
The code you showed so far either tried to add text/html to an image
(that is, binary data), or to embed the image's binary data into
text/html. None of this makes sense. Period. The problem is not with
Python. The problem is that you can't seriously hope to do web
programming without any knowledge of the http protocol.
Also and FWIW, you'd be better using a decent templating system (mako,
cheetah, genshi, tal, whatever fits your brain) instead of generating
html that way.
More information about the Python-list
mailing list