Example #1
0
 def post(self):
     post_parser = reqparse.RequestParser()
     post_parser.add_argument('name',
                              type=str,
                              required=True,
                              help='the argument cannot be blank')
     post_parser.add_argument('article_ids',
                              type=int,
                              action='append',
                              help='the argument cannot be blank')
     args = post_parser.parse_args()
     try:
         category = Category()
         category.name = args['name']
         category.articles = [
             Article.query.get_or_404(id) for id in args['article_ids']
         ] if args['article_ids'] else []
         db.session.add(category)
         db.session.commit()
     except sqlalchemy.exc.IntegrityError:
         db.session.rollback()
         return {'status': 400, 'msg': '字段冲突'}, 400
     except sqlalchemy.exc.InvalidRequestError:
         db.session.rollback()
         return {'status': 400, 'msg': '字段冲突'}, 400
     return {'status': 200, 'msg': '新建分类成功'}
Example #2
0
 def test_categories(self):
     category = Category()
     category.name = 'c'
     category.articles = [Article.query.get(1)]
     db.session.add(category)
     db.session.commit()
     r = self.client.get(self.url + '/categories', )
     self.assertEqual(r.status_code, 200)
     text = r.get_data(as_text=True)
     self.assertTrue('name' in text and 'articles' in text)
Example #3
0
def new_category():
    try:
        category = request.json.get('category')
        article_ids = request.json.get('articles')
    except AttributeError:
        abort(400)
    print(category)
    if category:
        try:
            articles = [Article.query.get(id) for id in article_ids]
        except BaseException:
            abort(400)
        try:
            c = Category()
            c.name = category
            c.articles = articles
            db.session.add(c)
            db.session.commit()
        except sqlalchemy.exc.IntegrityError:
            return jsonify({'status': '400', 'msg': '分类名重复'}), 400
        return jsonify({'status': 200})
    return jsonify({'status': 404}), 404