首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问Python CGI做网页的一个小困扰

2012-02-12 
请教Python CGI做网页的一个小困扰这是用Python CGI写的一个简单页面:Python code#!/usr/bin/env python#c

请教Python CGI做网页的一个小困扰
这是用Python CGI写的一个简单页面:

Python code
#!/usr/bin/env python#coding=gbkimport cgiform = cgi.FieldStorage()count = int(form.getvalue('index','-1'))result = ''alert = ''#从文件读取列表infile = open('codelist.txt','r')lines = infile.readlines()infile.close()##########以下是关键:点击按钮时条件才能为真。可是刷新网页(按F5)时条件也真,这是我不希望的############if (form.getvalue('t','') != ''):    if len(lines) == 0:        alert = '列表中的号码已全部用完,请通知管理员添加新列表'    else:        count += 1        result = lines[0]#获取号码        lines.pop(0)#删除已获取出去的号码        #更新列表到文件        outfile = open('codelist.txt','w')        lines2 = ''.join(lines)        outfile.write(lines2)        outfile.close()#######################################################################################################print '''Content-type: text/html<html>    <head>        <title>获取授权码</title>    </head>    <body>        <h1>授权码: %s</h1>        <form action='index.cgi'>        <input type='hidden' name="index" value="%s" />        <input type='submit' name="t" value="点击获取"/>        <form/>        <p>当前剩余:%s<p/>        <h1>%s<h1/>    </body></html>''' % (result,count,len(lines),alert)

如上,我本意用form.getvalue('t','') != ''判断是想用户在点击按钮t的时候才执行if代码块,可是我发现这个条件在刷新网页的时候也是不为空的,所以也真,也执行if代码块,但是我实在找不到别的判断条件!
我应该怎么处理这个问题?

[解决办法]
1. 就具体问题来说,效果本来就不会变。你原来的写法不好,容易混淆问题。
2. form.getvalue('t')如果是None,你那个条件就不可能为真了。
3. 我说的是http post。
[解决办法]
探讨
引用:
1. 就具体问题来说,效果本来就不会变。你原来的写法不好,容易混淆问题。

您能提示一个比较好的写法么?
我的需求是:
读取一个txt文件,网页上每点击一次按钮触发一个事件:将txt中的首行显示在页面顶端,同时删除txt中的这一行。但仅在点击按钮时触发此事件,页面刷新时不能触发。

非常感谢!!

热点排行