2016-10-04 83 views
0

这是简单的代码来测试html.and中的重定向,我使用Spyder编写Python代码。GAE有效,但导入webapp2失败Spyder

import webapp2 
from valid_day import valid_day 
from valid_month import valid_month 
from valid_year import valid_year 
from html_escape import escape_html 
form = """ 
<form method="post"> 
    What is your birthday? 
    <br> 
    <label> 
     Month 
     <input type="text" name="month" value="%(month)s"> 
    </label> 
    <label> 
     Day 
     <input type="text" name="day" value="%(day)s"> 
    </label> 
    <label> 
     Year 
     <input type="text" name="year" value="%(year)s"> 
    </label> 
    <div style="color: red">%(error)s</div> 
    <br><br> 
    <input type="submit"> 
</form> 
""" 

class MainPage(webapp2.RequestHandler): 
    def write_form(self, error="", month="", day="", year=""): 
     self.response.out.write(form %{"error": error, 
             "month": escape_html(month), 
             "day": escape_html(day), 
             "year": escape_html(year)}) 

    def get(self): 
     self.write_form() 

    def post(self): 
     user_month = self.request.get('month') 
     user_day = self.request.get('day') 
     user_year = self.request.get('year') 

     month = valid_month(user_month) 
     day = valid_day(user_day) 
     year = valid_year(user_year) 

     if not(month and day and year): 
      self.write_form("That doesn't look valid to me, friend.", user_month, user_day, user_year) 
     else: 
      self.redirect("/thanks") 

class ThanksHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.out.write("Thanks! That's a totally valid day!") 

app = webapp2.WSGIApplication([('/', MainPage), 
           ('/thanks', ThanksHandler)], 
          debug=True) 

而代码GAE和我http://localhost:8081/运行良好,但是失败了,当我试图通过在Spyder.the错误信息点击运行该代码是: 导入错误:没有模块名为webapp2的 我已经也看过import webapp2 works on google-app-engine even though I don't have webapp2 installed 并添加GAE目录到我的〜/ .bashrc老乡:

export PYTHONPATH="$PYTHONPATH:/home/lehr/Web/google_appengine/" 
export PYTHONPATH="$PYTHONPATH:/home/lehr/Web/google_appengine/lib/" 
export PYTHONPATH="$PYTHONPATH:/home/lehr/Web/google_appengine/lib/yaml" 

但这也不能使用,即使我重新启动Ubuntu的工作。

回答

1

的GAE应用代码不旨在直接执行,作为一个独立的应用程序,它需要通过它知道如何加载和执行该应用程序代码(在与仿真GAE蟒沙箱补充它的发展服务器执行功能)。见Using the Local Development Server

可能能够与SDK来执行它一起(即执行dev_appserver.py并把它传递相同ARGS你这么做的时候,当你得到它没有Spyder的工作作为)。但我不熟悉Spyder,我不确定它是否支持通过第三方工具执行您的应用程序代码(如果它确实 - 如果它真的对开发有实用/有用)

+0

thanks Dan,I只是想知道如果我不使用这个IDE,当我真的需要类似调试和自动完成功能时,我可以使用什么工具进行开发。 –

+0

我正在使用PyCharm,它同时具有这两种功能。但是对于GAE应用程序,调试器对于我的口味来说有点太慢,并且认为它很实用(可能也是因为运行了SDK),所以大多数时候我都使用基于日志的调试。付费专业版本为GAE提供了一些内置的自定义功能,免费社区版本不支持(但我想可以手动设置大部分功能)。 –