Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. import time
  2. import os
  3. import webapp2
  4. import jinja2
  5. from google.appengine.ext import db
  6.  
  7. template_dir = os.path.join(os.path.dirname(__file__), 'templates')
  8. jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)
  9.  
  10. class Post(db.Model):
  11. title = db.StringProperty(required = True)
  12. post = db.TextProperty(required = True)
  13. created = db.DateTimeProperty(auto_now_add = True)
  14.  
  15. class Handler(webapp2.RequestHandler):
  16. def write(self, *a, **kw):
  17. self.response.out.write(*a, **kw)
  18. def render_str(self, template, **params):
  19. t = jinja_env.get_template(template)
  20. return t.render(params)
  21. def render(self, template, **kw):
  22. self.write(self.render_str(template, **kw))
  23.  
  24. class BlogPage(Handler):
  25. def render_front(self, title="", post="", error=""):
  26. posts = db.GqlQuery("SELECT * FROM Post ORDER BY created DESC")
  27. self.render("front.html", posts = posts)
  28. def get(self):
  29. self.render_front()
  30.  
  31. class ParmaLink(Handler):
  32. def render_front(self, subject="", content=""):
  33. posts = db.GqlQuery("SELECT * FROM Post ORDER BY created DESC")
  34. self.render("blogPage.html", subject = posts[0].title, content = posts[0].post, datecreated = posts[0].created)
  35. def get(self):
  36. self.render_front()
  37.  
  38. class NewPost(Handler):
  39. def render_front(self, subject="", content="", error=""):
  40. self.render("NewPost.html", subject=subject, content=content, error = error)
  41. def get(self):
  42. self.render_front()
  43. def post(self):
  44. subject = self.request.get("subject")
  45. content = self.request.get("content")
  46. if subject and content:
  47. a = Post(title = subject, post = content)
  48. a.put()
  49. self.redirect("/blog/1000")
  50. else:
  51. error = "we need both a Subject and Content!"
  52. self.render_front(error = error)
  53.  
  54. app = webapp2.WSGIApplication([('/blog', BlogPage),
  55. ('/blog/1000', ParmaLink),
  56. ('/blog/newpost', NewPost)], debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement