def delete(request): pid = request.params.get("post_id") if pid: session = DBSession() p = session.query(Post).get(pid) session.delete(p) session.flush() else: return Response("Not find") return Response("Delete done!")
def post(request): id = request.params.get("id") session = DBSession() if request.method == "POST": title, content = request.POST["title"], request.POST["content"] tags = request.POST["tags"] summary = request.POST["summary"] url_kword = request.POST["url_kword"] assert title not in ("", None), "Missing title" assert url_kword not in ("", None), "Missing url_kword" assert content not in ("", None), "Missing content" p = None if id: p = session.query(Post).get(id) else: p = Post(timestamp=time.time(), date=datetime.date.today()) session.add(p) p.title = title p.content = content p.summary = summary p.url_kword = url_kword if tags: tags = tags.split(",") tags = [v.strip() for v in tags] tags_db = [] for tag in tags: t = session.query(Tag).filter_by(name=tag).first() if not t: t = Tag(name=tag) tags_db.append(t) for i in range(len(p.tags)): p.tags.pop() for t in tags_db: p.tags.append(t) session.flush() return HTTPFound(location=request.route_url("blog_home")) else: entry = None if id: entry = session.query(Post).get(id) start = entry.id - 2 if entry else 0 entries = session.query(Post).filter(Post.id >= start).limit(5) return dict(entry=entry, entries=entries, recent_posts=recent_posts())