Exemple #1
0
    def post(self, post_id=None):
        if post_id:  # 为啥要设置这条件?
            abort(400)
        else:
            args = post_post_parser.parse_args(strict=True)  # ?
            user = User.verify_auth_token(args['token'])
            if not user:
                abort(401)
            new_post = Post(args['title'], args['text'])  # 新建post对象
            new_post.date = datetime.datetime.now()
            new_post.author = user

            if args['tags']:
                for item in args['tags']:
                    tag = Tag.query.filter_by(title=item).first()
                    if tag:  # 如果数据库已经存在该tag,那就直接添加到新post中
                        new_post.tags.append(tag)
                    else:  # 不然要新建了再添加
                        new_tag = Tag(item)
                        new_post.tags.append(new_tag)

        db.session.add(new_post)
        db.session.commit()
        return new_post.id, 201