- UnicodeDecodeError. While rendering the blob image
- class NewPost(Handler):
- def render_newpost(self, title='' , content='', error = ''):
- self.render("newpost.html", title = title, content = content, error = error)
- def get(self):
- user_cookie = self.request.cookies.get('user')
- if user_cookie:
- user_id = user_cookie.split('|')[0]
- if hash_str(user_id) == user_cookie.split('|')[1]:
- user = Users.get_by_id(int(user_id))
- self.render_newpost()
- else:
- self.redirect('/')
- def post(self):
- title = self.request.get("title")
- content = self.request.get("content")
- image = self.request.get("file")
- if title and content:
- p = Posts(title = title, content = content)
- p.image=db.Blob(image)
- p.put()
- self.redirect("/")
- else:
- error = "Enter both title and text"
- self.render_newpost(title, content, error)
- class Main(Handler):
- def get(self):
- posts = db.GqlQuery("SELECT * FROM Posts Order by created DESC LIMIT 10")
- user_cookie = self.request.cookies.get('user')
- if user_cookie:
- user_id = user_cookie.split('|')[0]
- if hash_str(user_id) == user_cookie.split('|')[1]:
- user = Users.get_by_id(int(user_id))
- self.render("front.html", posts = posts, user=user)
- else:
- self.response.headers['Content-Type'] = "image/jpeg"
- self.render("front.html", posts = posts)
- <form method="post" enctype="multipart/form-data">
- <div class="newpost">
- <label>Image:</label>
- <input type="file" name="file"/>
- <div class="label">Title:
- <input type="text" name="title" value="{{title}}"/>
- </div>
- <hr>
- <div class="label">Content:
- <textarea name="content">{{content}}</textarea>
- </div>
- </div>
- <input type="submit"/>
- <div class="error">{{error}}</div>
- </form>
- {% for post in posts %}
- {% if post.image %}
- <li><img src="/static/images/{{post.image}}"/>
- {% endif %}
- <h4><a href="#">{{post.title}}</a></h4>
- <p class="zoom">{{post.content}}</p>
- {% endfor %}
- {% if post.image_id %}
- <li><img src="/image/{{post.image_id}}" />
- {% endif %}