3

Google App Engineのチュートリアルを終了しました。すべてこれまでのところうまくいった。その後、新しいデータストアモデルを追加して、既存のハンドラに設定することにしました。私は "content2"と呼ばれる2番目のコンテンツフィールドを追加し、それをハンドラのGuestbook()で設定しようとしましたが、それはボークアウトを維持します。私はそれが賢明なエラーになると確信していますが、私はatmで困惑しています。何か案は?Google App Engineチュートリアルの問題 - 新しいデータストアモデル

main.py

import cgi 

from google.appengine.api import users 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
from google.appengine.ext import db 
import os 
from google.appengine.ext.webapp import template 

class Greeting(db.Model): 
    author = db.UserProperty() 
    content = db.StringProperty(multiline=True) 
    date = db.DateTimeProperty(auto_now_add=True) 
    content2 = db.StringProperty(multiline=True) 


class MainPage(webapp.RequestHandler): 
    def get(self): 
    greetings_query = Greeting.all().order('-date') 
    greetings = greetings_query.fetch(1000) 

    if users.get_current_user(): 
     url = users.create_logout_url(self.request.uri) 
     url_linktext = 'Logout' 
    else: 
     url = users.create_login_url(self.request.uri) 
     url_linktext = 'Login' 

    template_values = { 
     'greetings': greetings, 
     'url': url, 
     'url_linktext': url_linktext, 
     } 


    path = os.path.join(os.path.dirname(__file__), 'index.html') 
    self.response.out.write(template.render(path, template_values)) 

class Guestbook(webapp.RequestHandler): 
    def post(self): 
    greeting = Greeting() 

    if users.get_current_user(): 
     greeting.author = users.get_current_user() 

    greeting.content = self.request.get('content') 
greeting.content2 = self.request.get('content') 
    greeting.put() 
    self.redirect('/') 

class HelloWorld(webapp.RequestHandler): 
    def get(self): 
    self.response.out.write('Hello, webapp World!') 



application = webapp.WSGIApplication(
            [('/', MainPage), 
             ('/sign', Guestbook)], 
            debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

index.htmlを

<html> 
    <body> 
    {% for greeting in greetings %} 
     {% if greeting.author %} 
     <b>{{ greeting.author.nickname }}</b> wrote: Dogs name is: {{ pet.name }} 
     {% else %} 
     An anonymous person wrote: 
     {% endif %} 
     <blockquote>{{ greeting.content|escape }}</blockquote> 
    {% endfor %} 

    <form action="/sign" method="post"> 
     <div><textarea name="content" rows="3" cols="60"></textarea></div> 
     <div><input type="submit" value="Sign Guestbook"></div> 
    </form> 

    <a href="{{ url }}">{{ url_linktext }}</a> 

    </body> 
</html> 
+0

エラーは何ですか? –

答えて

5

私はあなたのコードに何かを見ることはできません。私の頭の上から、私はあなたの新しい商品の前に白い間隔を確認すると言うでしょう。

それ以外のエラーメッセージは何ですか?ログに表示されるエラーメッセージは、ブラウザのエラーメッセージよりもはるかにユーザーフレンドリーです。

+0

Ahhはダッシュボードのログを確認するとは思わなかった。ここに私がアップロードしたときの印刷物(以前はdevサーバを使っていただけだった): :予期しないインデント(main.py、行47) :予期せぬindent(main.py、line 47) インデントを確認しますが、それでもまだ確認します:S –

+0

私は開発環境のログを意味していました。コマンドプロンプトには、ライブダッシュボードエラーのようなエラーが表示されます。それがあなたの問題を解決したら、これを答えたものにしてください:) – AutomatedTester

0

固定されています。 htmlからnotepad ++へのコピー時には、タブを正しくコピーしていなかったし、インデント用のタブの代わりに2個のスペースを使うだけだった。

私は一見シンプルなpythonエラーで数日間苦労しています。だから、これはおそらくいくつかを治すでしょう。

ありがとう、大変ありがとうございます。

+1

Pythonスタイルのガイドは、タブの代わりにスペースを使うことを強くお勧めします:http://www.python.org/dev/peps/pep-0008/ –

+1

また、それが将来の人々に役立つように質問に答えたものを記入してください。 –

+1

どの言語でもタブの代わりにスペースを使用することをお勧めします。 – Phil

関連する問題