专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

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

发布时间:2011-06-29 20:10:50 文章来源:www.iduyao.cn 采编人员:星星草
请教Python CGI做网页的一个小困扰
这是用Python CGI写的一个简单页面:
Python code

#!/usr/bin/env python
#coding=gbk
import cgi
form = 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中的这一行。但仅在点击按钮时触发此事件,页面刷新时不能触发。

非常感谢!!
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: