Python表单处理

2024-09-27 23:16:02 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我在Python脚本中找到问题吗?这个脚本只需从带有几个单选按钮的HTML表单中获取一个请求。在

import cgi
from file import *
form = cgi.FieldStorage()

print "Content-type: text/html"
print
print """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">"""

print "<html>"
print "<head>"
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">"
print "<title></title>"
print "</head>"
print "<body>"

choice = form.getvalue('option')

f = File("onlineVotes.txt")

if choice is None:
    print "<p class='error'>Please choose an option before voting.</p>"
    print "<br><a href='onlinePoll.html' class='backVoteAgain'>Go back</a>"

else:
    if f.exists() == False:
        f.startWrite()
        f.write(choice)
        print choice
        print "<div class='voteBar' style='width: 250px;'>"
        print 1
        print "</div>"

    else:
        f.startRead()
        choice = f.read() + " " + choice
        choiceList = choice.split()

        filterList = []

        for item in choiceList:
            if item not in filterList:
                filterList.append(item)

        choiceDict = {}

        for elem in filterList:
            print "<br>" + elem

            counts = choiceList.count(elem)

            choiceDict['%s' % elem] = counts
            maxValue = max(choiceDict.values())

            barWidth = counts*250/maxValue

            print "<div class='voteBar' style='width: %spx;'>" % str(barWidth)
            print counts
            print maxValue
            print "</div>"

        totalVotes = str(sum(choiceDict.values()))
        print "<br>Total number of votes: " + totalVotes

    f.startWrite()
    f.write(choice)
    f.close()

print "</body>"
print "</html>"

问题是当option1得到10票时,option2得到5票,option3得到3票,这就是max的值(选择ict.values())是10,这和预期的一样好。但是,当option1获得10票,option2得到11票,option3得到5票时,option1的最大值保持在10,而option2和option3的最大值都是11。在

我哪里做错了?在


Tags: inbrdivifhtmlitemclassprint

热门问题