def put(self): data = api.payload["data"]["article"] id = api.payload["data"].get('id') content = Article.query.filter(Article.id == id).first_or_404() tagRemove = content.tags.all() print(tagRemove, 'bbbb') if len(tagRemove) != 0: for n in tagRemove: print(n.name, 'aa') content.tags.remove(n) content.title = data.get("title") content.slug = data.get("slug") content.user_id = data.get("user_id") category = data.get("category") content.url_en = data.get("url_en") tags = data.get("tags") content.image_url = data.get("image_url") content.text = data.get("text") content.template = data.get("template") content.like_count = data.get("like_count") content.views = data.get("views") for i in tags: blogTag = Tag().query.filter(Tag.name == i).first() if blogTag: content.tags.append(blogTag) db.session.add(blogTag) else: blogTag = Tag(name=i) content.tags.append(blogTag) db.session.add(blogTag) delCategory = content.category.first() if content.category.first( ) else False if delCategory: content.category.remove(delCategory) blogCategory = Category().query.filter( Category.name == category).first() if blogCategory: content.category.append(blogCategory) db.session.add(blogCategory) else: blogCategory = Category(name=category) content.category.append(blogCategory) db.session.add(blogCategory) try: content.save() return {"code": 201, "status": "success", 'message': '文章修改成功!'} except Exception as eror: print(eror) return {"code": 401, "status": "error", "message": eror}
def post(self): data = api.payload["data"]["article"] title = data.get("title") slug = data.get("slug") user_id = data.get("user_id") post_type = data.get("post_type") url_en = data.get("url_en") tag = data.get("tag") image_url = data.get("image_url") text = data.get("text") template = data.get("template") like_count = data.get("like_count") views = data.get("views") content = Article( title=title, slug=slug, user_id=user_id, url_en=url_en, image_url=image_url, text=text, template=template, like_count=like_count, views=views, ) tagList = data.get("tag") for i in tagList: blogTag = Tag().query.filter(Tag.name == i).first() if blogTag: content.tags.append(blogTag) db.session.add(blogTag) print(blogTag) else: blogTag = Tag(name=i) content.tags.append(blogTag) db.session.add(blogTag) '''文章分类''' blogCategory = Category().query.filter(Tag.name == post_type).first() if blogCategory: content.category.append(blogCategory) db.session.add(blogCategory) else: blogCategory = Category(name=post_type) content.category.append(blogCategory) db.session.add(blogCategory) db.session.add(content) db.session.commit() return {"code": 200, "status": "success", 'message': '文章提交成功!'}
def blog_write(): if request.method == 'POST': data = request.get_json() title = data.get('title') slug = data.get('slug') tags = data.get('tags') post_type = data.get('category') text = data.get('text') url_en = data.get("enUrl") user_id = session.get('user_id') image_url = data.get("img") template = data.get("template") article = Article(title=title, slug=slug, user_id=user_id, url_en=url_en, image_url=image_url, text=text, template=template) for i in tags: blogTag = Tag().query.filter(Tag.name == i).first() if blogTag: article.tags.append(blogTag) db.session.add(blogTag) else: blogTag = Tag(name=i) article.tags.append(blogTag) db.session.add(blogTag) blogCategory = Category().query.filter( Category.name == post_type).first() if blogCategory: article.category.append(blogCategory) db.session.add(blogCategory) else: blogCategory = Category(name=post_type) article.category.append(blogCategory) db.session.add(blogCategory) save = article.save() if save.get('status'): cache.clear() return jsonify({'status': "success", 'message': '文章修改成功'}) else: return jsonify({ 'status': "error", 'message': str(save.get('message')) }) else: return render_template("blog-write.html", **locals())
def get(self): '''通过分类获取文章''' pageShow = 6 category = request.args.get("category") page = request.args.get("page", type=int, default=1) categoryData = Category().query.filter( Category.name == category).first() total = categoryData.article.count() start = (page - 1) * pageShow end = start + pageShow articles = categoryData.article.order_by(Article.created.desc()).slice( start, end) articleList = [] for article in articles: data1 = article.to_json() data1.update( {"category": categoryData.name if categoryData else None}) articleList.append(data1) return jsonify({ "data": { "article": articleList, "conuter": categoryData.article.count(), 'pageShow': pageShow } })
def post(self): category = api.payload['data'].get('category') blogCategory = Category(name=category) if blogCategory.save(): categoryData = Category.query.all() category = [] for n in categoryData: category.append(n.to_json()) return jsonify({ "code": 201, "status": "success", 'message': '文章分类提交成功!', 'data': { 'category': category } }) else: return jsonify({ "code": 401, "status": "error", "message": '文章分类提交失败!' })
def blog_category_handle(): if request.method == "GET": categoryData = Category.query.all() categorys = [] for i in categoryData: categorys.append({'id': i.id, 'name': i.name}) return jsonify(categorys) elif request.method == "POST": category = Category(name=request.get_json().get('category')) save = category.save() if save.get('status'): categoryData = Category.query.all() categorys = [] for i in categoryData: categorys.append({'id': i.id, 'name': i.name}) cache.clear() return jsonify(categorys) else: return jsonify({'message': str(save.get('message'))}) elif request.method == "PUT": data = request.get_json().get('category') category = Category.query.filter_by(id=data.get('id')).first() category.name = data.get('name') updata = category.updata() if updata.get('status'): categoryData = Category.query.all() categorys = [] for i in categoryData: categorys.append({'id': i.id, 'name': i.name}) cache.clear() return jsonify({'status': "success", "message": ' 修改成功!', 'data': categorys}) else: categoryData = Category.query.all() categorys = [] for i in categoryData: categorys.append({'id': i.id, 'name': i.name}) return jsonify({'status': "error", "message": str(updata.get('message')), 'data': categorys}) elif request.method == "DELETE": id = request.get_json().get('id') category = Category.query.filter_by(id=id).first() delete = category.delete() if delete.get('status'): categoryData = Category.query.all() categorys = [] for i in categoryData: categorys.append({'id': i.id, 'name': i.name}) cache.clear() return jsonify({'status': "success", "message": ' 修改成功!', 'data': categorys}) return jsonify({'status': "error", "message": str(delete.get('message'))})
def blog_modify(url): if request.method == "GET": url = url return render_template("blog-modify.html", **locals()) elif request.method == 'PUT': data = request.get_json() title = data.get('title') slug = data.get('slug') tags = data.get('tags') post_type = data.get('category') text = data.get('text') url_en = data.get("enUrl") image_url = data.get("img") template = data.get("template") content = Article.query.filter_by(id=url).first() for tag in content.tags: content.tags.remove(tag) for category in content.category: content.category.remove(category) for i in tags: blogTag = Tag().query.filter(Tag.name == i).first() if blogTag: content.tags.append(blogTag) db.session.add(blogTag) print(blogTag) else: blogTag = Tag(name=i) content.tags.append(blogTag) db.session.add(blogTag) blogCategory = Category().query.filter(Category.name == post_type).first() if blogCategory: content.category.append(blogCategory) db.session.add(blogCategory) else: blogCategory = Category(name=post_type) content.category.append(blogCategory) db.session.add(blogCategory) content.title = title content.slug = slug content.text = text content.url_en = url_en content.image_url = image_url content.template = template updata = content.updata() if updata.get('status'): cache.clear() return jsonify({'status': "success", "message": ' 修改成功!'}) else: return jsonify({'status': "error", "message": str(updata.get('message'))}) elif request.method == "POST": content = Article.query.filter( Article.id == url).first() tags = [] for tag in content.tags: tags.append(tag.name) category = content.category[0].name articleData = content.to_json() articleData['tags'] = tags articleData['category'] = category return jsonify(articleData)