在使用CGI模块时,如果循环未执行,则在内部打印语句

时间:2017-07-11 03:28:46

标签: python html python-2.7 xampp

我正在编写一个程序,它将使用cgi从HTML页面获取信息,然后将值传递给for循环,循环将在Excel工作表中搜索条目并打印与搜索条件匹配的列。

我的程序如下所示,但是每次for循环后都没有打印搜索结果,当使用CGI收到值时,所以“print(domain)”没有被执行。

#!c:\Python27\python.exe

import openpyxl
import cgi, cgitb

print "Content-type:text/html\r\n\r\n"
print "<html>"
print "</body>"

formData=cgi.FieldStorage()
Mode=formData.getvalue('uniqvalue')
Mode_it={Mode}

wb=openpyxl.load_workbook('excelsheet.xlsx')
sheet= wb.get_sheet_by_name('Sheet1')

for rowNum in range (2, sheet.max_row):
    invName=sheet.cell(row=rowNum,column=2).value
    if invName in Mode_it:
         domain=sheet.cell(row=rowNum, column=3).value
         print(domain)

print "<h4> You searched for %s</h4>" % Mode

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

有趣的是,如果我进行以下更改并更改变量Mode并给出一个固定值,它就能完美运行。

基本上,如果我为变量Mode赋予值为7961,则它起作用:

formData=cgi.FieldStorage()
Mode=formData.getvalue('uniqvalue')
Mode_it={7961}

我知道循环有效,最后一个print语句打印我在HTML中输入的值的输出,所以我知道它也有效。

我不确定为什么它不是变量。任何线索都将受到高度赞赏。

我使用的示例HTML具有以下语法:

<form action="Searchandreturn.py" method="post">
Enter the Value: <input type="text" name="uniqvalue"><br />
<input type="submit" value="Submit" />
</form> 

0 个答案:

没有答案