def post(self):
		blog_subject = self.request.get('subject')
		blog_body = self.request.get('content')

		valid_subject = validate_blog_subject(blog_subject)
		valid_body = validate_blog_body(blog_body)

		if not (valid_subject and valid_body): 
			error_subject = ''
			error_content = ''

			if not valid_subject:
				error_subject = 'Please add a valid subject.'

			if not valid_body:
				error_content = 'Please add valid content.'

			self.render('newpost.html', subject = blog_subject, 
										content = blog_body,
										error_subject = error_subject,
										error_content = error_content,
										active_tab = 'active')
		else:
			blog_posting = BlogPosts(subject=blog_subject, content=blog_body)
			blog_posting.put()
			permalink_id = str(blog_posting.key().id())

			#update memcache and redirect to permalink
			get_latest_postings(True)
			self.response.headers.add_header('Set-Cookie', 
								'render_time=; Path=/blog')
			self.redirect('/blog/'+ permalink_id)
    def post(self):
        blog_subject = self.request.get('subject')
        blog_body = self.request.get('content')

        valid_subject = validate_blog_subject(blog_subject)
        valid_body = validate_blog_body(blog_body)

        if not (valid_subject and valid_body):
            error_subject = ''
            error_content = ''

            if not valid_subject:
                error_subject = 'Please add a valid subject.'

            if not valid_body:
                error_content = 'Please add valid content.'

            self.render('newpost.html',
                        subject=blog_subject,
                        content=blog_body,
                        error_subject=error_subject,
                        error_content=error_content,
                        active_tab='active')
        else:
            blog_posting = BlogPosts(subject=blog_subject, content=blog_body)
            blog_posting.put()
            permalink_id = str(blog_posting.key().id())

            #update memcache and redirect to permalink
            get_latest_postings(True)
            self.response.headers.add_header('Set-Cookie',
                                             'render_time=; Path=/blog')
            self.redirect('/blog/' + permalink_id)
def get_blog_post(post_id):
    key = post_id
    blog_post = memcache.get(key)

    render_time_key = key + '_render_time'
    render_time = memcache.get(render_time_key)

    if blog_post == None:
        #show error in the console
        logging.error('DB ID QUERY')
        blog_post = BlogPosts.get_by_id(int(post_id))

        #datastore query is executed
        blog_post = blog_post

        render_time = time.time()
        reload_time = render_time

        #add time and values to memcache
        memcache.set(key, blog_post)
        memcache.set(render_time_key, render_time)

    else:
        reload_time = time.time()

    render_time = int(reload_time - render_time)
    return (blog_post, render_time)
def get_blog_post(post_id):
	key = post_id
	blog_post = memcache.get(key)

	render_time_key = key + '_render_time'
	render_time = memcache.get(render_time_key)

	if blog_post == None:
		#show error in the console 
		logging.error('DB ID QUERY')
		blog_post = BlogPosts.get_by_id(int(post_id))

		#datastore query is executed
		blog_post = blog_post			

		render_time = time.time()
		reload_time = render_time

		#add time and values to memcache
		memcache.set(key, blog_post)
		memcache.set(render_time_key, render_time)

	else:
		reload_time = time.time()
	
	render_time = int(reload_time - render_time)
	return (blog_post, render_time)
	def get(self, post_id):
		blog_post = BlogPosts.get_by_id(int(post_id))

		if blog_post:
			self.response.headers['Content-Type'] = 'application/json'
			self.write(json.dumps({'contents': str(blog_post.content),
									'created': time.strftime(str(blog_post.created)),
									'subject': str(blog_post.subject)}))
		else:
			self.render('404.html')
    def get(self, post_id):
        blog_post = BlogPosts.get_by_id(int(post_id))

        if blog_post:
            self.response.headers['Content-Type'] = 'application/json'
            self.write(
                json.dumps({
                    'contents': str(blog_post.content),
                    'created': time.strftime(str(blog_post.created)),
                    'subject': str(blog_post.subject)
                }))
        else:
            self.render('404.html')
	def get(self):
		q = BlogPosts.all()
		q.order("-created")

		blog_listings = []
		for blog_post in q.run(limit=10):
			if blog_post:
				blog_listings.append({'contents': str(blog_post.content),
									  'created': time.strftime(str(blog_post.created)),
									  'subject': str(blog_post.subject)})

		if blog_listings:
			self.response.headers['Content-Type'] = 'application/json'
			self.write(json.dumps(blog_listings))
		else:
			self.render('404.html')
    def get(self):
        q = BlogPosts.all()
        q.order("-created")

        blog_listings = []
        for blog_post in q.run(limit=10):
            if blog_post:
                blog_listings.append({
                    'contents':
                    str(blog_post.content),
                    'created':
                    time.strftime(str(blog_post.created)),
                    'subject':
                    str(blog_post.subject)
                })

        if blog_listings:
            self.response.headers['Content-Type'] = 'application/json'
            self.write(json.dumps(blog_listings))
        else:
            self.render('404.html')