来自mysql查询的psp / python / html中的双循环

时间:2011-08-23 07:22:26

标签: python html mysql-python

我正在尝试编写一个脚本,该脚本将从国家/地区开始接收他们想去的地方的用户输入。然后获取用户的输入并更新我所在国家/地区的状态列表,然后是哪个州处于州和国家/地区。

我的后端使用python / psp,前端使用html。我无法让此页面更新在我的网站上运行。有人可以帮忙吗?

<div id="content">


<p>
Where would you like to go?
</p>
<form method="post" action="http://localhost/list2.psp">
Places to go:
<select name = "location">
<%
cursor.execute("select distint country from location") or die(mysql_error())
result = cursor.fetchall()
for record in result:
cursor.execute("select * from location where country='%s'" % record[0]) or die(mysql_error())
result2 =  cursor.fetchall()
%>

<optgroup label="<%=record[0]%>
<%

for record2 in result2:
%>

<option value="<%= record2[0] %>"><%= record[1] %>, <%= record[2]%>, <%= record[3]%></option>

<%
print 'hi'
%>

</optgroup>
</select>
<br>


<input type="submit" value="Search">`
</form>
</div>

它在我的网页上给了我这个错误:

cursor.execute("select * from location where country='%s'" % record[0]) or die(mysql_error())

         ^

IndentationError: expected an indented block

我的语法错了吗?

2 个答案:

答案 0 :(得分:0)

我从未听说过Python Server Pages,哇。无论如何,在Python indentation matters中,您可以将缩进视为C风格语言中花括号的替代。

for record in result:
    cursor.execute("select * from location where country='%s'" % record[0]) or die(mysql_error())
    result2 =  cursor.fetchall()
    for record2 in result2:
          pass #next loop, further indented

因此,在你的for循环中,属于循环的所有东西都必须在同一级别上缩进。

答案 1 :(得分:0)

要了解如何翻译python,请按照此O'Reilly教程中的“调试”部分进行操作:http://www.oreillynet.com/pub/a/python/2004/02/26/python_server_pages.html

要修复python PSP代码,请参阅此链接http://www.webwareforpython.org/Webware/PSP/Docs/UsersGuide.html#CodeThatSpansTags 或尝试使用大括号: http://www.webwareforpython.org/Webware/PSP/Docs/UsersGuide.html#Braces