0
다음은 PSP (Python Server Pages) 코드입니다. mysqldb를 사용하여 "addr"테이블에서 레코드를 가져 와서 같은 페이지를 html 페이지로 출력하려고합니다.Print 문이 PSP (Python 서버 페이지)에서 작동하지 않습니다.
그러나 어떤 이유로 for 루프 (테이블 행 포함)와 for 루프 ("Hello"문 포함) 외부의 print 문이 코드 실행 후 마침내 "Rows 인쇄 됨 "이 표시되고 다른 것은 표시되지 않습니다. 파이썬 스크립트가 잘 작동하고 테이블에 저장된 원하는 기록을 제공하기 때문에 실행할 때
<% 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>
인쇄 문
같은 심지어 시도의 catch 블록하지 않고 결과를 표시 할 수 있지만 나던.
감사합니다; 그것은 아주 잘 작동했습니다. 하지만 귀하의 게시물에서 또 다른 의심은 내 마음에 떠오르다. 즉, 웹 사이트를 구축하기위한 파이썬 서버 페이지의 사용이 권장되지 않습니까? 인터넷에서의 연구 결과 CGI 처리기보다 훨씬 빠르다는 것을 알았지 만 PSP 사용의 단점이나 단점을 놓치고 있다면 친절하게도 지적 해주십시오. 다시 한 번 감사드립니다! –
PSP는 mod_python을 기반으로합니다. mod_python은 현재 개발 중이며 더 이상 사용되지 않습니다. 그리고 PSP는 일반적으로 비즈니스 로직과 디스플레이를 혼합하여 개발과 유지 보수를 어렵게 만드는 매우 훌륭한 기술은 아닙니다. WSGI 위에 장고 (Django) 나 플라스크 (Flask)와 같은 프레임 워크를 사용하십시오. 적절한 구분과 적절한 템플릿 언어를 제외하고 Django는 SQL 문 작성의 필요성을 피하는 db 계층을 포함합니다. –