def post(self, title): if self.form.validate(): post = None if self.form.post_id.data: post = yield Post.asyncQuery(id=self.form.post_id.data).first() if post: post.modified_time = datetime.datetime.utcnow() else: post = Post() post.create_time = \ self.BeiJing2UTCTime(self.form.create_time.data) title = self.form.title.data.replace(' ', '-') content = self.form.content.data markdown_text = self.form.markdown.data tags = self.separate_tags(self.form.tags.data) category_str = self.form.category.data.capitalize() category = yield Category.asyncQuery(name=category_str).first() if not category: category = Category() category.name = category_str yield category.save() post.title = title post.content = content post.markdown = markdown_text post.category = category post.tags = tags post.author = self.current_user yield post.save() self.flash("compose finsh!") return self.redirect('/blog') self.render("compose.html", form=self.form)
def get(self, title): post = yield Post.asyncQuery(title=title).first() self.form.create_time.data = \ self.UTC2BeiJingTime(datetime.datetime.utcnow()) if post: self.form.post_id.data = post.id self.form.title.data = post.title self.form.content.data = post.content self.form.markdown.data = post.markdown self.form.create_time.data = \ self.UTC2BeiJingTime(post.create_time) self.form.category.data = post.category.name self.form.tags.data = ','.join(post.tags) self.render("compose.html", form=self.form)
def get(self, category, page): if not page: page = 1 if not category: category = "All" if category.upper() == "ALL": posts = yield Post.asyncQuery().order_by("-create_time").paginate( page=int(page), per_page=self.settings['per_page']) else: c = yield Category.asyncQuery(name=category).first() if not c: raise tornado.web.HTTPError(404) posts = yield Post.asyncQuery( category=c).order_by("-create_time").paginate( page=int(page), per_page=self.settings['per_page']) categorys = yield Category.asyncQuery() self.render("blog.html", posts=posts, categorys=categorys, current_category=category)
def post(self, title): post = yield Post.asyncQuery(title=title).first() if not post: raise tornado.web.HTTPError(404) if self.form.validate(): comment = Comment() comment.create_time = datetime.datetime.utcnow() comment.author_name = self.form.author_name.data comment.author_email = self.form.author_email.data comment.author_url = self.form.author_url.data # Direct use user post data is unsafe, # so we convert `org_markdown_text` in the back-end comment.content = markdown2.markdown(self.form.content.data) post.comments.append(comment) yield post.save() self.flash("评论提交成功~") return self.redirect("{path}{id}".format( path=self.request.path, id="#comment")) self.render("post.html", post=post, form=self.form)
def post(self, title): post = yield Post.asyncQuery(title=title).first() if not post: raise tornado.web.HTTPError(404) if self.form.validate(): comment = Comment() comment.create_time = datetime.datetime.utcnow() comment.author_name = self.form.author_name.data comment.author_email = self.form.author_email.data comment.author_url = self.form.author_url.data # Direct use user post data is unsafe, # so we convert `org_markdown_text` in the back-end comment.content = markdown2.markdown(self.form.content.data) post.comments.append(comment) yield post.save() self.flash("评论提交成功~") return self.redirect("{path}{id}".format(path=self.request.path, id="#comment")) self.render("post.html", post=post, form=self.form)
def post(self, title): if self.form.validate(): post = None if self.form.post_id.data: post = yield Post.asyncQuery(id=self.form.post_id.data).first() if post: post.modified_time = datetime.datetime.utcnow() else: post = Post() post.create_time = \ self.BeiJing2UTCTime(self.form.create_time.data) title = self.form.title.data.replace(' ', '-') content = self.form.content.data markdown_text = self.form.markdown.data tags = self.separate_tags(self.form.tags.data) category_str = self.form.category.data.capitalize() category = yield Category.asyncQuery( name=category_str).first() if not category: category = Category() category.name = category_str yield category.save() post.title = title post.content = content post.markdown = markdown_text post.category = category post.tags = tags post.author = self.current_user yield post.save() self.flash("compose finsh!") return self.redirect('/blog') self.render("compose.html", form=self.form)
def get(self, title): post = yield Post.asyncQuery(title=title).first() if not post: raise tornado.web.HTTPError(404) self.render("post.html", post=post, form=self.form)