Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import os
- import webapp2
- import jinja2
- from google.appengine.ext import db
- template_dir = os.path.join(os.path.dirname(__file__), 'templates')
- jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)
- class Post(db.Model):
- title = db.StringProperty(required = True)
- post = db.TextProperty(required = True)
- created = db.DateTimeProperty(auto_now_add = True)
- class Handler(webapp2.RequestHandler):
- def write(self, *a, **kw):
- self.response.out.write(*a, **kw)
- def render_str(self, template, **params):
- t = jinja_env.get_template(template)
- return t.render(params)
- def render(self, template, **kw):
- self.write(self.render_str(template, **kw))
- class BlogPage(Handler):
- def render_front(self, title="", post="", error=""):
- posts = db.GqlQuery("SELECT * FROM Post ORDER BY created DESC")
- self.render("front.html", posts = posts)
- def get(self):
- self.render_front()
- class ParmaLink(Handler):
- def render_front(self, subject="", content=""):
- posts = db.GqlQuery("SELECT * FROM Post ORDER BY created DESC")
- self.render("blogPage.html", subject = posts[0].title, content = posts[0].post, datecreated = posts[0].created)
- def get(self):
- self.render_front()
- class NewPost(Handler):
- def render_front(self, subject="", content="", error=""):
- self.render("NewPost.html", subject=subject, content=content, error = error)
- def get(self):
- self.render_front()
- def post(self):
- subject = self.request.get("subject")
- content = self.request.get("content")
- if subject and content:
- a = Post(title = subject, post = content)
- a.put()
- self.redirect("/blog/1000")
- else:
- error = "we need both a Subject and Content!"
- self.render_front(error = error)
- app = webapp2.WSGIApplication([('/blog', BlogPage),
- ('/blog/1000', ParmaLink),
- ('/blog/newpost', NewPost)], debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement