J'apprends comment utiliser GoogleAppEngine avec Python comme langue de choix.Le magasin de données GoogleAppEngine ne renvoie aucun enregistrement
Voici mon code:
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
class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
class BlogPost(db.Model):
author = db.UserProperty();
body = db.StringProperty(multiline=True)
postDate = db.DateTimeProperty(auto_now_add=True)
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write('<html><body>')
blogPosts = db.GqlQuery("SELECT * FROM BlogPost ORDER BY date DESC LIMIT 10")
greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10")
for post in blogPosts:
if post.author:
self.response.out.write('<b>%s</b>' % post.author.nickname())
else:
self.response.out.write('<b>A guest wrote:</b>')
self.response.out.write(cgi.escape(post.body))
# Write the submission form and the footer of the page
self.response.out.write("""
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>""")
class Guestbook(webapp.RequestHandler):
def post(self):
post = BlogPost()
if users.get_current_user():
post.author = users.get_current_user()
post.body = self.request.get('content')
post.put()
self.redirect('/')
application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Je voulais ajouter une classe BlogPost juste pour tester des choses pour moi-même, et il ne semble pas enregistrement est enregistré dans la banque de données. J'utilise Komodo Edit comme IDE, donc je ne peux pas utiliser un breakpoint.
Des erreurs flagrantes?
Merci!
L'InternalError était juste pour moi. Je me suis débarrassé de cela en passant à C: \ Python27 \ pythonw.exe dans les propriétés, je l'avais mis à 'Python25' – soulseekah
Vous devriez utiliser Python 2.5 pour App Engine - juste utiliser une révision plus récente. –
@Nick merci pour les heads-up. – soulseekah