2016-10-04 10 views
0

これはhtmlのリダイレクトをテストする簡単なコードです。私はSpyderを使ってPythonコードを記述しています。GAEは動作しますが、Spyderでwebapp2をインポートできません

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とよく働いたと私はSpyder.theエラーメッセージにクリックしてコードを実行しようとすると、私のhttp://localhost:8081/に、それは失敗しながら、次のとおりです。 はImportError:いいえモジュールの名前webapp2を 私はしましたまたimport webapp2 works on google-app-engine even though I don't have webapp2 installed を読んで、仲間としての私の〜/ .bashrcのにGAEのディレクトリを追加します。

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 python sandboxで補完しながらアプリケーションコードを読み込んで実行する開発サーバーによって実行される必要があります機能性)。 Using the Local Development Serverを参照してください。

あなた

(すなわち、あなたはスパイダーせずに作業それを得たとき、あなたがやったときと同じ引数を dev_appserver.pyを実行し、それを渡す)SDKとそれを一緒に を実行することができるかもしれません。しかし、私はSpyderに慣れていないので、サードパーティのツールを使ってアプリコードを実行することができれば分かりません(実際には開発/実用的な場合)

+0

Dan、私に感謝私はこのIDEを使用しないのかどうか疑問に思っています。本当にデバッグやオートコンプリートのようなものが必要なときは、どのツールを開発用に使うことができますか? –

+0

私はPyCharmを使用しています。しかし、GAEのアプリケーションでは、デバッガは実用的ではないと思うほど好みがありません(おそらくSDKを実行しているため)、ログベースのデバッグを使用しています。有料のプロフェッショナル版にはGAEのカスタム設定が組み込まれていますが、無料のコミュニティ版はありません(ただし、手動でセットアップすることは不可能ではありません)。 –

関連する問題