Re: dynamically creating html code with python...

anartz at anartz.cjb.net anartz at anartz.cjb.net
Mon Aug 11 17:47:53 EDT 2008


This makes sense. Thanks!

I managed to get what I wanted with something similar to what you suggested:

[CODE]
print "Content-Type: text/html\n\n"
html="""
<html>
    <head>
        <title>
            data analysis site
        </title>
    </head>
    <body>
        <p>This is a test</p>
        <IMG SRC="%s" />
        <p>After image text</p>
    </body>
</html>"""

print html % myChartsLib.myPlotType(TheData)
[/CODE]

and the script returns

[CODE]
    f = StringIO.StringIO()
    pylab.savefig(f)
    return 'data:image/png,' + urllib.quote(f.getvalue())
[/CODE]

This works fine in Firefox, but not in IE7. Any ideas why?

BTW, you are right about me not having a clue about http. It's the first time I try to do something with it. May be you could point me out to some good links where I can learn.

I will take a look into Mako too.

Thanks again.

Bruno Desthuilliers <bdesth.quelquechose at free.quelquepart.fr> wrote :

> 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.
> --
> http://mail.python.org/mailman/listinfo/python-list






More information about the Python-list mailing list