Exemplo n.º 1
0
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!")
Exemplo n.º 2
0
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())