def pic_info(): user = g.user if request.method == "GET": return render_template('news/user_pic_info.html', data={"user": user.to_dict()}) # TODO 如果是POST表示修改头像 # 1. 获取参数图片 try: file = request.files.get("avatar").read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数错误") # 2.上传头像 try: key = storage(file) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传头像失败") # 3.保存头像地址 user.avatar_url = key data = { "avatar_url": constants.QINIU_DOMIN_PREFIX, } return jsonify(errno=RET.OK, errmsg="OK", data=data)
def pic_info(): user = g.user # get请求进行头像的获取 if request.method == 'GET': return render_template('news/user_pic_info.html', data={"user_info": g.user.to_dict()}) # 获取上传的图片 try: avatar = request.files.get("avatar").read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数错误") # 上传头像 try: key = storage(avatar) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传头像失败") # 保存头像地址到数据库,不要存全链接,方便后期修改 user.avatar_url = key try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="保存用户头像错误") return jsonify(errno=RET.OK, errmsg="OK", data={"avatar_url": constants.QINIU_DOMIN_PREFIX + key})
def news_release(): if request.method == "GET": # 加载新闻分类数据 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) category_dict_li = [] for category in categories: category_dict_li.append(category.to_dict()) # 移除最新分类 category_dict_li.pop(0) return render_template('news/user_news_release.html', data={"categories": category_dict_li}) user = g.user # 1. 获取要提交的数据 title = request.form.get("title") source = "个人发布" digest = request.form.get("digest") content = request.form.get("content") index_image = request.files.get("index_image") category_id = request.form.get("category_id") # 1.1 判断数据是否有值 if not all([title, source, digest, content, index_image, category_id]): return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 校验参数 try: category_id = int(category_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 取到图片,将图片上传至七牛云 try: index_image_data = index_image.read() # 上传至七牛云 key = storage(index_image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数有误") news = News() news.title = title news.digest = digest news.source = source news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.category_id = category_id news.user_id = user.id # 1代表待审核状态 news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="数据保存失败") return jsonify(errno=RET.OK, errsmg="OK")
def news_edit_detail(): """新闻编辑详情""" if request.method == "GET": # 获取参数 news_id = request.args.get("news_id") if not news_id: return render_template('admin/news_edit_detail.html', data={"errmsg": "未查询到此新闻"}) # 查询新闻 news = None try: news = News.query.get(news_id) except Exception as e: current_app.logger.error(e) if not news: return render_template('admin/news_edit_detail.html', data={"errmsg": "未查询到此新闻"}) # 查询分类的数据 categories = Category.query.all() categories_li = [] for category in categories: c_dict = category.to_dict() c_dict["is_selected"] = False if category.id == news.category_id: c_dict["is_selected"] = True categories_li.append(c_dict) # 移除`最新`分类 categories_li.pop(0) data = {"news": news.to_dict(), "categories": categories_li} return render_template('admin/news_edit_detail.html', data=data) # 提交修改,news_id使用的是隐藏的input news_id = request.form.get("news_id") title = request.form.get("title") digest = request.form.get("digest") content = request.form.get("content") index_image = request.files.get("index_image") category_id = request.form.get("category_id") # 1.1 判断数据是否有值 if not all([title, digest, content, category_id]): return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 验证news_id news = None try: news = News.query.get(news_id) except Exception as e: current_app.logger.error(e) if not news: return jsonify(errno=RET.NODATA, errmsg="未查询到新闻数据") # 1.2 尝试读取图片 if index_image: try: index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 2. 将标题图片上传到七牛 try: key = storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误") news.index_image_url = constants.QINIU_DOMIN_PREFIX + key # 3. 设置相关数据 news.title = title news.digest = digest news.content = content news.category_id = category_id # 5. 返回结果 return jsonify(errno=RET.OK, errmsg="编辑成功")
def news_edit_detail(): if request.method == "GET": # 查询点击的新闻的相关数据并传入到模板中 news_id = request.args.get("news_id") if not news_id: abort(404) try: news_id = int(news_id) except Exception as e: current_app.logger.error(e) return render_template('admin/news_edit_detail.html', errmsg="参数错误") try: news = News.query.get(news_id) except Exception as e: current_app.logger.error(e) return render_template('admin/news_edit_detail.html', errmsg="查询数据错误") if not news: return render_template('admin/news_edit_detail.html', errmsg="未查询到数据") # 查询分类数据 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return render_template('admin/news_edit_detail.html', errmsg="查询数据错误") category_dict_li = [] for category in categories: # 取到分类的字典 cate_dict = category.to_dict() # 判断遍历的分类是否是当前分类 if category.id == news.category_id: cate_dict["is_selected"] = True category_dict_li.append(category.to_dict()) # 移除最新分类 category_dict_li.pop(0) data = {"news": news.to_dict(), "categories": category_dict_li} return render_template('admin/news_edit_detail.html', data=data) # 取post数据 news_id = request.form.get("news_id") title = request.form.get("title") digest = request.form.get("digest") content = request.form.get("content") index_image = request.files.get("index_image") category_id = request.form.get("category_id") # 1.1判断数据是否有值 if not all([title, digest, content, category_id]): return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # news = None try: news = News.query.get(news_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="数据查询失败") if not news: return jsonify(errno=RET.NODATA, errmsg="未查询到新闻数据") # 读取图片 if index_image: try: index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 2.将标题图片传到七牛 try: key = storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误") news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.title = title news.digest = digest news.content = content news.category_id = category_id # 数据库提交保存 return jsonify(errno=RET.OK, errmsg="OK")