2011-04-14 47 views
2

我有一个非常简单的程序,检查日期和回报,如果合并个月+日+年是所谓的快乐数(一些卫生组织平方的总和其数字等于1)。
当我通过python在本地运行它时,程序工作正常,但是当我试图通过appengine在本地或联机上运行它时,没有任何内容会显示,而是显示一条测试打印行。
我不明白为什么appengine不会显示该功能。AppEngine上不会显示Python函数

任何帮助或建议将非常感激,因为我卡住了。
的AppEngine上日志显示的GET请求:

" INFO  2011-04-14 18:19:14,981 dev_appserver.py:3317] "GET/HTTP/1.1" 200 -" 

,但没有后来。

import sys 
import datetime 

def main(): 
    date = datetime.date.today() 
    datearray=[0,0,0] 
    datearray[0]=str(date.month) 
    datearray[1]=str(date.day) 
    datearray[2]=str(date.year) 
    joined = ''.join(datearray) 
    print "Date:",int(joined) 
    print happynums(int(joined)) 

def happynums(num): 
    total = int(num) 
    varnum = 0 
    bin=0  
    x=0 
    past=set() 

    while total!=1: 
     if total in past: 
      return "Sad day :(" 
     past.add(total) 
     list = map(int,str(total)) 
     total=0 
     for i in list: 
      total = total + i**2 
     if total==1: 
      return "Happy day :)" 

if __name__ == '__main__': 
    main() 
    print "TEST" 

回答

5

你不能在一个CGI脚本只是printstdout;您必须首先发送标题,后跟一个空行。您的输出被您的浏览器解释为HTTP标头,而不是正在打印。

你几乎肯定希望使用某种WSGI框架来为你处理这个问题。

+0

谢谢!我打算潜入Django,但至少想知道该程序是否先在线上正常运行。 – PFlans 2011-04-14 18:36:17

+0

+1另一个'PRINT'受害者:) – systempuntoout 2011-04-14 20:02:34

+0

如果你只是想检查功能,你可以使用'import logging','logging.debug(“Happy day”)''。 – hyperslug 2011-04-14 22:24:37