|
|
|
|
| 如何将Python脚本程序执行的结果嵌入到Html中? |
 如何将Python脚本程序执行的结果嵌入到Html中? - bulebaby [ 2005-02-28 16:02 | 1,609 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - limodou [ 2005-02-28 17:44 | 274 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - bulebaby [ 2005-03-01 17:43 | 450 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - limodou [ 2005-03-01 18:01 | 577 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - bulebaby [ 2005-03-01 18:57 | 580 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - youwater [ 2005-06-24 15:53 | 63 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - limodou [ 2005-06-24 17:15 | 20 byte(s)]
 Re: 如何将Python脚本程序执行的结果嵌入到Html中? - limodou [ 2005-03-01 22:13 | 654 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
我想在一个网页中实现动态显示公告的功能,我得想法是这样的,让Python脚本程序去读一个已经存在.txt文件,然后将结果以Table的形式显示在浏览器中。
在Html文件中我是这样写的:
……
<form name="scrollnews" method="POST" action="/cgi-bin/news.py"></form>
……
在news.py中实现从.txt文件中读取信息是这样的:
#!E:Pythonpython.exe
def main():
newsfile = open('news.txt','r')
newsStr = newsfile.readline()
if newsStr:
print "Content-type: text/html"
print
print "<table width='800' align='center' border='0' cellspacing='0' cellpadding='0'>"
while newsStr:
print "<tr><td width='15' height='15'><div align='left'><img src='pic/dot.gif' width='14' height='14' /></div></td>"
print """
<td width='780' height='15'><div align='left'>%s</div></td></tr>""" %newsStr
newsStr = newsfile.readline()
print "</table>"
newsfile.close()
else:
newsfile.close()
main()
但是当我把Apache启动访问时,Python脚本程序却没有执行,但如果直接访问:http://localhost/cgi-bin/news.py 是可以读出文件中的信息的,但就是不能实现嵌入到Html中来,而且服务器端也支持CGI了,不知道该怎么办了,请高手指教!
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
不太明白你想如何嵌入。一种是使用象mod_python这样的模块,它可以直接执行嵌在html中的python代码。一种是调用python程序来输出完整的html代码。象你的例子好象是放在form中,必须要提交才能把python程序调起来,不是一进入页面就会执行的。想一进入页面就执行,就应该使用上面我说的两种方法。
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
今天实现了最差的一种想法,将要显示的Html文件分为三部分:插入结果的前面部分,插入结果,插入结果的后面部分,然后让脚本程序生成中间的结果,最后将它们合起来写到一个Html文件中。不过现在有一个问题就是,但我把结果写到Html文件中后,我该怎么在脚本程序中直接转到这个页面显示呢?本来以为webbrowser.open()函数可以实现,结果它好像不支持直接在浏览器里面转向,而在命令行下是可以调起来浏览器来显示的,不知道Python有没有象JSP的response.sendRedirrect()函数类似的功能?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
我还是不太清楚你到底想做什么。是想实现cgi程序,还是只是生成一个html文件在本地浏览?
这两种目的的执行方式天壤之别。
cgi方式需要一个网络环境,需要一个浏览器和服务器。浏览器发起请求,服务器上需要有一个web server执行请求返回结果。我想你可能清楚。
而你所说的webbrowser.open()根本就是一个本地调用,与cgi一点关系都没有。
请不要把这两者给弄混了。
最简单的方法就是直接在浏览器中输入你的xxx.py地址,然后这个xxx.py输出html结果,包括了你的HTML的三个部分不就行了吗?使用redirrect实际上是要执行两次请求的。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
生成Html文件后,我然后想由客户端浏览器向服务端去请求这个页面的,不是想实现本地浏览,觉得有时候自己都被这种Web程序折腾的糊涂了,呵呵。其实我想做的就是象某些网站的公告栏一样的功能,让它实现自动更新,而不是每次增加一条信息我都去改首页的静态页面文件,但是用Python又不能象别的脚本语言一样如JSP可以嵌在Html中,让它将执行结果插入到页面中来,所以想了个这样的笨办法,就是想用Python练练手吧,性能方面自己暂时不考虑。本来还想试一下Zope、Webware之类的应用服务器,听说可以支持PSP,但是时间有限,也就懒的弄了(今天上午完了一下Webware,但还是不知道它该怎么执行我的应用程序:—(),谢谢limodou啦
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
最简单的python web framework我现在认为应该是cherrypy了。
至于象公告栏与python本身其实关系不大,象为公告栏的刷新要符合html页面刷新的要求,而后台的python只是用来生成这个html内容的。因此你要先清楚如果实现一个公告栏才行,然后把刷新的处理使用python来实现。公告栏就我个人的理解一种是使用frame,这样做为公告栏的frame的页面可以自动刷新,也就是向后台发出页面请求,然后后台的程序自动生成不同的页面。再有就是使用iframe,与frame的方式一样,只不过frame的效果有差别而已。别的也可能有更多的方法,我就不清楚了。
因此这里面涉及的问题python只是其中一方面,还有其它的关于页面生成与实现方面的东西不是直接与python有关的你也要知道才可以。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|