двойной цикл в psp / python / html из запроса MySQL - PullRequest
2 голосов
/ 23 августа 2011

Я пытаюсь запрограммировать скрипт, который будет принимать пользовательский ввод места, куда они хотят отправиться, начиная со страны. Затем возьмите введенные пользователем данные и обновите мой список того, какой штат находится в стране, а затем, какой город находится в штате И страна.

Я использую 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 голосов
/ 02 февраля 2012

Чтобы увидеть, как переводится питон, следуйте разделу «Отладка» в этом уроке O'Reilly: http://www.oreillynet.com/pub/a/python/2004/02/26/python_server_pages.html

Для исправления кода PSP Python см. Ссылку http://www.webwareforpython.org/Webware/PSP/Docs/UsersGuide.html#CodeThatSpansTagsпопробуйте использовать фигурные скобки: http://www.webwareforpython.org/Webware/PSP/Docs/UsersGuide.html#Braces

0 голосов
/ 23 августа 2011

Я никогда не слышал о страницах Python Server, вау.В любом случае, в отступ Python имеет значение , вы можете думать о отступе как о замене фигурных скобок в языках 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 все, что принадлежит циклу, должно иметь отступ на одном уровне.

...