Оператор печати не работает в PSP (страницы сервера Python)
Ниже приведен код для страниц сервера Python (PSP); используя mysqldb, я пытаюсь извлечь записи из таблицы "addr", а затем распечатать их на HTML-странице.
Но по какой-то причине оператор print внутри цикла for (содержащий строки таблицы) и вне цикла for (содержащий оператор Hello) не работает, из-за чего после выполнения кода, наконец, отображается только оператор "строки напечатаны" и ничего больше.
<% import MySQLdb
conn = MySQLdb.Connect(host='localhost',user='user',passwd='password',db='db1')
cur = conn.cursor()
sql= "SELECT * from addr;"
try:
cur.execute(sql)
data = cur.fetchall()
for row in data:
print row[1]
print("Hello")
cur.close()
conn.close()
%>
<br />
<html>
<h1> Rows Printed</h1>
</body>
</html>
<%
except MySQLdb.IntegrityError,message:
errorcode = message[0]
%>
<html>
<body><h1> Technical issue</h1>
</body>
</html>
Оператор print не отображает результаты даже без блока try catch, но при запуске в виде скрипта Python работает нормально и предоставляет нужные записи, хранящиеся в таблице.
1 ответ
Я не могу понять, почему вы хотите использовать Python Server Pages, но, поскольку вы это делаете, вы явно не можете использовать print
, Вы должны фактически вывести результаты на страницу в синтаксисе PSP. Что-то вроде:
for row in data: %>
<br><%= row[1] =%>
<%
cur.close()
и т.п.