def get(self): response_data = deepcopy(self.base_response_data) page, size = get_values_by_keys( self.parser.parse_args(), [('page', current_app.config['DEFAULTPAGE']), ('size', current_app.config['DEFAULTSIZE'])]) response_data = self.make_pagination_data(page, size, response_data) return response_data, 200
def delete(self): response_data = deepcopy(self.base_response_data) tag_id = get_values_by_keys(self.parser.parse_args(), [('id', -1)]) res = self.delete_data_by_id(TagModel, tag_id) if not res: response_data['res'] = 0 response_data['message'] = "the id is invalid." return response_data, 200
def get(self): response_data = deepcopy(self.base_response_data) count, = get_values_by_keys( self.parser.parse_args(), [('count', current_app.config["DEFAULTCOUNT"])]) articles = self.requester.get_popular_posts(ArticleModel, count=count) response_data['data'] = marshal(data=articles, fields=self.fields) return response_data, 200
def post(self): response_data = deepcopy(self.base_response_data) about_data = self.requester.get_model_all(AboutModel)[0] new_content, = get_values_by_keys(self.parser.parse_args(), [("content", about_data.content)]) about_data.content = new_content self.requester.commit() return response_data
def put(self): response_data = deepcopy(self.base_response_data) tag_name, = get_values_by_keys(self.parser.parse_args(), [('name', '全部')]) res = self.add_new_tag(tag_name) if not res: response_data['res'] = 0 response_data['message'] = "the name is invalid." return response_data, 200
def delete(self): """ 删除分类,同该分类下的文章一同删除 :return: """ response_data = deepcopy(self.base_response_data) category_id = get_values_by_keys(self.parser.parse_args(), [('id', -1)]) res = self.delete_data_by_id(CategoryModel, category_id) if not res: response_data['res'] = 0 response_data['message'] = "the id is invalid." return response_data, 200
def post(self): """ 修改分类 :return: """ response_data = deepcopy(self.base_response_data) name, category_id = get_values_by_keys(self.parser.parse_args(), [('name', None), ('id', -1)]) res = self.modify_category(name, category_id) if not res: response_data['res'] = 0 response_data['message'] = "the id or name is invalid." return response_data, 200
def put(self): """ 添加一个新的分类 :return: """ response_data = deepcopy(self.base_response_data) category_name, = get_values_by_keys(self.parser.parse_args(), [('name', '全部')]) res = self.add_new_category(name=category_name) if not res: response_data['res'] = 0 response_data['message'] = "the name is invalid" return response_data
def delete(self): response_data = deepcopy(self.base_response_data) # 从parser中获取提交的数据,如果提交的数据没有通过验证将自动返回错误信息。 # 返回值是一个列表,所有加','解包 article_uuid, = get_values_by_keys(self.parser.parse_args(), [('uuid', -1)]) res = self.delete_data(ArticleModel, article_uuid) if not res: response_data['res'] = 0 response_data['message'] = 'the id is invalid.' return response_data, 200
def get(self): """ 获取指定id所对应的tag信息 :return: """ response_data = deepcopy(self.base_response_data) tag_id = get_values_by_keys(self.parser.parse_args(), [('id', -1)]) res, tag = self.requester.get_model_by_id(TagModel, tag_id) if res: response_data['data'] = marshal(tag, fields=self.fields) else: response_data['res'] = 0 response_data['message'] = "the id is invalid." return response_data, 200
def post(self): """ 修改指定id对应的tag的name :return: """ response_data = deepcopy(self.base_response_data) tag_id, tag_name = get_values_by_keys(self.parser.parse_args(), [('id', -1), ('name', None)]) res = self.modify_tag(tag_id, tag_name) if not res: response_data['res'] = 0 response_data['message'] = "the id or name is invalid." return response_data, 200
def get(self): # 响应数据 response_data = deepcopy(self.base_response_data) # 从请求中查询参数 article_uuid, = get_values_by_keys(self.parser.parse_args(), [('uuid', '-1')]) res, article = self.requester.get_model_by_uuid( ArticleModel, article_uuid) if res: # 查找成功 response_data['data'] = marshal(data=article, fields=self.fields) else: response_data['res'] = 0 response_data['message'] = 'the uuid is invalid.' return response_data, 200
def post(self): response_data = deepcopy(self.base_response_data) # 从parser中获取提交的数据,如果提交的数据没有通过验证将自动返回错误信息。 args = self.parser.parse_args() article_id, = get_values_by_keys(args, [('id', -1)]) # 根据id查找文章 res, article = self.requester.get_model_by_id(ArticleModel, article_id) if res: # 更新文章 self.update_article(article, args) else: response_data['res'] = 0 response_data['message'] = 'the id is invalid.' return response_data, 201
def get(self): """ 使用id查询某个分类信息 :return: """ response_data = deepcopy(self.base_response_data) category_id, = get_values_by_keys(self.parser.parse_args(), [('id', -1)]) res, category = self.requester.get_model_by_id(CategoryModel, category_id) if res: response_data['data'] = marshal(category, self.fields) else: response_data['res'] = 0 response_data['message'] = "the id is invalid." return response_data, 200
def update_article(self, article, data): """ 修改文章 :param article: 数据库查询的article :param data: 需要更新的数据 :return: None """ # 处理原文章没有标签添加标签时出错的问题 if article.tags.all() is None: origin_tag_name_list = None else: origin_tag_name_list = [tag.name for tag in article.tags.all()] # 处理原文章没有分类时添加分类出错的问题 if article.category is None: origin_category_name = None else: origin_category_name = article.category.name title, content, abstract, like_num, c_name, t_names, view_num, post_time, img_url = get_values_by_keys( data, [('title', article.title), ('content', article.content), ('abstract', article.abstract), ('likeNum', article.like_num), ('category', origin_category_name), ('tags', origin_tag_name_list), ('viewNum', article.view_num), ('postTime', article.post_time), ("coverImgUrl", article.img_url)]) try: post_uuid = article.uuid if title is not article.title: # title值被修改需要重新生成uuid post_uuid = ArticleModel.generate_uuid(title) article.uuid = post_uuid article.title = title article.content = content article.abstract = abstract article.like_num = like_num article.category = self.requester.get_model_by_name( CategoryModel, c_name) article.tags = self.requester.get_model_by_names(TagModel, t_names) article.view_num = view_num article.img_url = img_url # 更新发布时间时需要将前端传来的时间戳转化为datetime对象 if type(post_time) is int: post_time = get_datetime(int(post_time)) article.post_time = post_time self.requester.commit() return True except: return False
def put(self): response_data = deepcopy(self.base_response_data) # 从parser中获取提交的数据,如果提交的数据没有通过验证将自动返回错误信息。 title, content, abstract, c_name, t_names, like_num, view_num, post_time, cover_img_url = get_values_by_keys( self.parser.parse_args(), [ 'title', 'content', 'abstract', 'category', 'tags', ('likeNum', 0), ('viewNum', 0), ("postTime", None), ("coverImgUrl", "") ]) # tags 为列表,其余为字符串 res, new_post = self.build_article(title=title, content=content, abstract=abstract, c_name=c_name, t_names=t_names, like_num=like_num, view_num=view_num, post_time=post_time, img_url=cover_img_url) if res: self.requester.add(new_post) self.requester.commit() else: response_data['res'] = 0 response_data['message'] = "error" return response_data, 201