def user_news_release(): user = g.user if request.method != 'POST': category = None try: category = Category.query.all() except Exception as e: current_app.logger.debug(e) if not category: return jsonify(errno=RET.DATAERR, errmsg="参数错误或者新闻不存在") category_list = list() category.pop(0) for temp in category: category_list.append(temp.to_dict()) data = {'category_list': category_list} return render_template('news/user_news_release.html', data=data) title = request.form.get('title') pic = request.files.get('index_image') content = request.form.get('content') digest = request.form.get('digest') category = request.form.get('category_id') iscategory = None try: iscategory = Category.query.filter(Category.id == category) except Exception as e: current_app.logger.debug(e) if not all([title, pic, content, digest, category]): return jsonify(errno=RET.DATAERR, errmsg="参数错误") # 非空校验 if not iscategory: return jsonify(errno=RET.DATAERR, errmsg="参数错误") # 上传用户图片 pic_url = None try: pic_url = constants.QINIU_DOMIN_PREFIX + storage(pic.read()) print(pic_url) except Exception as e: current_app.logger.debug(e) try: news = News() news.user_id = user.id news.category_id = category news.digest = digest news.source = user.nick_name news.content = content news.title = title news.status = 1 news.index_image_url = pic_url db.session.add(news) db.session.commit() except Exception as e: current_app.logger.debug(e) return jsonify(errno=RET.OK, errmsg="OK")
def news_release(): user = g.user if not user: return jsonify(errno=RET.SESSIONERR,errmsg='请登录') if request.method == 'GET': try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='查询分类数据异常') if not categories: return jsonify(errno=RET.NODATA, errmsg='无分类数据') category_list =[] for category in categories: category_list.append(category.to_dict()) category_list.pop(0) data ={ 'categories':category_list } return render_template('news/user_news_release.html',data=data) title = request.form.get('title') digest = request.form.get('digest') category_id = request.form.get('category_id') content = request.form.get('content') index_image = request.files.get('index_image') if not all([title, digest, category_id, content, index_image]): 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: image_data= index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR,errmsg='图片读取错误') try: image_name = storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR,errmsg='上传图片异常') news = News() news.title = title news.digest = digest news.category_id = category_id news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + image_name news.source = '个人发布' news.status = 1 news.user_id = user.id try: db.session.add(news) 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')
def news_release(): if request.method == "GET": category_list = Category.query.all() categories = [] for category in category_list: categories.append(category.to_dict()) # 最新的分类是按照时间进行排序,所有不需要添加到分类列表当中 categories.pop(0) data = {"categories": categories} return render_template("news/user_news_release.html", data=data) title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数输入错误") index_image = index_image.read() key = storage(index_image) user = g.user news = News() news.title = title news.source = "个人来源" news.digest = digest 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 db.session.add(news) db.session.commit() return jsonify(errno=RET.OK, errmsg="发布成功")
def user_news_release(): """新闻发布""" user = g.user_id if not user: return redirect("/") if request.method == "GET": category_list = [] try: category_mode = Category.query.all() except Exception as e: current_app.logger(e) return jsonify(errno=RET.DBERR, errmsg="数据错误") for category in category_mode: category_list.append(category.to_dict()) if category_list: category_list.pop(0) data = {"user": user.to_dict(), "categories": category_list} return render_template("news/user_news_release.html", data=data) title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, category_id, digest, index_image, content]): 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 = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="图片错误") try: key = storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误") new = News() new.category_id = category_id new.digest = digest new.content = content new.index_image_url = key new.title = title new.status = 1 user.news_list.append(new) try: db.session.add(new) 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")
def news_release(): # 1.判断请求方式,如果是GET if request.method == 'GET': # 2.查询所有分类数据 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='获取分类失败') category_list = [] for category in categories: category_list.append(category.to_dict()) # 2.1 携带分类数据渲染页面 return render_template('news/user_news_release.html', categories=categories) # 3.如果是POST, 获取参数 title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get('index_image') content = request.form.get('content') # 4.为空校验 if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg='参数不全') # 5.上传图片,判断是否上传成功 try: # 读取图片为二进制数据,上传 image_name = image_storage(index_image.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='七牛云异常') if not image_name: return jsonify(errno=RET.NODATA, errmsg='图片上传失败') # 6.创建新闻对象,设置属性 news = News() news.title = title news.source = g.user.nick_name news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + image_name news.category_id = category_id news.user_id = g.user.id news.status = 1 # 表示审核中 # 7.保存数据 try: db.session.add(news) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='新闻发布失败') # 8.返回响应 return jsonify(errno=RET.OK, errmsg='发布成功')
def news_release(): """新闻发布""" user = g.user if not user: return redirect(url_for('index.index')) if request.method == 'GET': # 展示全部分类(不包含最新) categories = Category.query.all() # 将‘最新’删除 categories.pop(0) # 构造响应数据 context = {'categories': categories} # 渲染模板 return render_template('news/user_news_release.html', context=context) if request.method == 'POST': # 1. 接受参数(title,category_id,digest,index_image,content) title = request.form.get('title') source = '个人发布' category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get('index_image') content = request.form.get('content') # 2. 校验参数 if not all([title, category_id, digest, index_image, content]): return jsonify(errno=response_code.RET.PARAMERR, errmsg='参数有误') # 尝试读取图片 try: index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=response_code.RET.PARAMERR, errmsg='参数有误') # 将图片上传到七牛云 try: key = upload_file(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=response_code.RET.PARAMERR, errmsg='参数有误') # 3.将新闻数据储存到数据库 # 创建新闻对象,并添加属性 news = News() news.title = title news.source = source news.category_id = category_id news.digest = digest # 此处必须自己添加url实乃迫不得已,因为新闻网站大部分图片都是爬取的 news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.content = content news.user_id = user.id news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=response_code.RET.DBERR, errmsg='存储数据失败') return jsonify(errno=response_code.RET.OK, errmsg='新闻发布成功,等待审核')
def news_release(): user = g.user if request.method == "GET": # 查询所有的分类 categories = None # 指定查询结果为默认none,避免跑异常 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.NODATA, errmsg="数据库查询失败") category_list = [] for category in categories: category_list.append(category.to_dict()) # 删除默认的"最新"这个分类,这个分类是不存在的额 category_list.pop(0) return render_template("news/user_news_release.html", data={"categories": category_list}) # 当请求为post时获取前端提交的数据,存入到数据库; title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误") # 读取图片,将图片转化为二进制 try: index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="图片读取失败") # 将图片上传到七牛云,返回值是获得图片的key,网址拼接即可拿到图片 try: key = storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败") # 创建新闻对象往里面存入数据 news = News() news.title = title news.source = "个人发布" news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.category_id = category_id news.user_id = user.id news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="新闻数据提交失败") return jsonify(errno=RET.OK, errmsg="新闻提交成功")
def news_release(): # 判断用户是否登录 user = g.user if not user: return redirect("/") # 获得新闻的所有分类 categories = [] if request.method == "GET": try: categories = Category.query.all() except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg=error_map[RET.DBERR]) return render_template("user/user_news_release.html", categories=categories) title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") content = request.form.get("content") try: img_bytes = request.files.get("index_image").read() except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) if not all([title, category_id, digest, img_bytes, content]): return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) try: file_name = upload_img(img_bytes) except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg=error_map[RET.THIRDERR]) try: category_id = int(category_id) except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) news = News() news.title = title news.digest = digest news.category_id = category_id news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + file_name # 设置其他属性 news.user_id = user.id news.status = 1 news.source = "个人发布" db.session.add(news) return jsonify(errno=RET.OK, errmsg=error_map[RET.OK])
def user_news_release(): """ 发布新闻 :return: """ user = g.user if request.method == "GET": categorys = Category.query.all() # [obj] categorys_dict_li = [category.to_dict() for category in categorys] categorys_dict_li.pop(0) data = {"categorys_dict_li": categorys_dict_li} return render_template("news/user_news_release.html", data=data) title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误") try: category_id = int(category_id) image_data = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数类型不正确") try: key = storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="第三上传失败") # 执行业务逻辑 news = News() news.title = title news.source = "个人发布" news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.category_id = category_id news.user_id = user.id news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="数据保存失败") return jsonify(errno=RET.OK, errmsg="OK")
def user_news_release(): """ 新闻发布: 如果是get请求,加载新闻分类,需要移除'最新'分类,传给模板 :return: """ user = g.user if not user: return jsonify(errno=RET.SESSIONERR, errmsg='用户未登录') if request.method == 'GET': categories = Category.query.filter(Category.id > 1).all() category_list = [] for category in categories: category_list.append(category.to_dict()) data = {'category': category_list} return render_template('news/user_news_release.html', data=data) pic_url = request.files.get('pic_url') digest = request.form.get('digest') content = request.form.get('content') title = request.form.get('title') category_id = request.form.get('category_id') if not all([pic_url, digest, content, title, 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: image_data = pic_url.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg='图片读取异常') # 使用七牛云存储图片 try: image_name = storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='图片存储异常') new = News() new.category_id = category_id new.index_image_url = constants.QINIU_DOMIN_PREFIX + image_name new.content = content # new.create_time = datetime.datetime.now() new.user_id = user.id new.digest = digest new.title = title new.status = 1 new.source = '个人发布' try: db.session.add(new) 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='新闻发布成功')
def news_release(): user = g.user # GET请求 if request.method == 'GET': # 1. 加载新闻分类数据 category = Category.query.all() # 2. 移除最新分类 category_ls = [] for i in category: if i.id > 1: category_ls.append(i) # 返回数据 data = { "categories": category_ls, } return render_template('news/user_news_release.html', data=data) # 1. 获取要提交的数据 title = request.form.get('title') # 新闻标题 category_id = request.form.get('category_id') # 索引图片 digest = request.form.get('digest') # 摘要 # index_image = request.file.get('index_image') # content = request.form['content'] content = request.form.get('content') # 内容 # source = request.form.get('source') # 新闻来源 print(content) # 校验参数 if not all([title, category_id, digest, content]): return jsonify(errno=RET.PARAMERR, errmsg='发布新闻参数请求错误') # # 3.取到图片,将图片上传到七牛云 # 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.category_id = category_id news.digest = digest # news.index_image = key news.content = content news.source = '个人发布' news.user_id = user.id # 新闻状态,将新闻设置为1代表待审核状态 news.status = 1 # 手动设置新闻状态,在返回前commit提交 try: db.session.add(news) # db.session.commit() return jsonify(errno=RET.OK, errmsg='新闻发布成功') except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='新闻发布失败')
def user_news_release(): user = g.user if not user: return redirect('/') try: cates = Category.query.filter(Category.id != 1).all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询新闻分类错误") categary_list = [] if cates: for cate in cates: categary_list.append(cate.to_dict()) if request.method == 'GET': return render_template('news/user_news_release.html', categary_list=categary_list) if request.method == "POST": title = request.form.get('title') categery = request.form.get('categary') digest = request.form.get('digest') image_file = request.files.get('image') content = request.form.get('content') print(content) if not all([title, categery, digest, image_file, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数不全") image_data = image_file.read() try: image_name = image_storage.storage(image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片到期牛云错误") new_release = News() new_release.title = title new_release.digest = digest new_release.index_image_url = constants.QINIU_DOMIN_PREFIX + image_name new_release.content = content new_release.category_id = categery new_release.status = 1 new_release.user_id = user.id new_release.source = user.nick_name new_release.create_time = datetime.now() try: db.session.add(new_release) db.session.commit() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="保存新闻失败") return jsonify(errno=RET.OK, errmsg="OK")
def news_release(): user = g.user if not user: return abort(404) if request.method == "GET": # 查询所有的分类, 传到模板中 categories = [] try: categories = Category.query.all() except BaseException as e: current_app.logger.error(e) if len(categories): categories.pop(0) return render_template("news/user_news_release.html", categories=categories) # POST处理 title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) try: category_id = int(category_id) except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) # 创建新闻模型 news = News() news.title = title news.category_id = category_id news.digest = digest news.content = content try: img_bytes = index_image.read() file_name = upload_img(img_bytes) except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg=error_map[RET.THIRDERR]) news.index_image_url = QINIU_DOMIN_PREFIX + file_name # 设置其他属性 news.user_id = user.id news.status = 1 news.source = "个人发布" # 添加到数据库中 db.session.add(news) return jsonify(errno=RET.OK, errmsg=error_map[RET.OK])
def news_release(): # 判断用户是否登录 user = g.user if not user: return abort(403) if request.method == "GET": # 查询所有的分类信息, 再传入模板 categories = [] try: categories = Category.query.all() except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg=error_map[RET.DBERR]) if len(categories): categories.pop(0) return render_template("news/user_news_release.html", categories=categories) # POST处理 title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") content = request.form.get("content") if not all([title, category_id, digest, content]): return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) try: category_id = int(category_id) except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) # 生成一个新的新闻模型 news = News() news.title = title news.category_id = category_id news.digest = digest news.content = content news.source = "个人发布" # 新闻来源 news.user_id = user.id # 新闻作者id news.status = 1 # 新闻审核状态 try: img_bytes = request.files.get("index_image").read() file_name = img_upload(img_bytes) news.index_image_url = QINIU_DOMIN_PREFIX + file_name except BaseException as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR]) # 添加到数据库中 db.session.add(news) return jsonify(errno=RET.OK, errmsg=error_map[RET.OK])
def user_news_release(): """新闻发布""" if request.method == 'GET': # 获取新闻分类信息 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) abort(500) # 去除最新分类 categories.pop(0) return render_template('news/user_news_release.html', categories=categories) else: # 新闻发布 # 1. 接收参数并进行参数校验 title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') content = request.form.get('content') file = request.files.get('index_image') if not all([title, category_id, digest, content, file]): return jsonify(errno=RET.PARAMERR, errmsg='参数不完整') # 2. 将新闻的索引图片上传至七牛云 try: key = storage(file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='保存新闻索引图片失败') # 3. 创建News对象并保存发布新闻信息 news = News() news.title = title news.source = '个人发布' news.category_id = category_id news.digest = digest news.content = content news.index_image_url = QINIU_DOMIN_PREFIX + key news.user_id = g.user.id news.status = 1 # 4. 将新闻信息添加进数据库 try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='保存发布新闻信息失败') # 5. 返回应答,新闻发布成功 return jsonify(errno=RET.OK, errmsg='新闻发布成功')
def news_release(): user = g.user if not user: return redirect(url_for('index.index')) #2.GET请求逻辑 if request.method == 'GET': categories = [] try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) categories.pop(0) context = {'categories': categories} return render_template('news/user_news_release.html', context=context) if request.method == 'POST': title = request.form.get("title") source = "个人发布" digest = request.form.get("digest") category_id = request.form.get("category_id") index_image = request.files.get("index_image") content = request.form.get("content") if not all([title, source, digest, content, index_image, category_id]): return jsonify(errno=response_code.RET.PARAMERR, errmsg="缺少参数") try: index_image_data = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=response_code.RET.PARAMERR, errmsg="读取新闻图片失败") try: key = upload_file(index_image_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=response_code.RET.THIRDERR, errmsg="上传新闻图片失败") # 3. 初始化新闻模型,并设置相关数据 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 = g.user.id # 1代表待审核状态 news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=response_code.RET.DBERR, errmsg="存储失败") return jsonify(errno=response_code.RET.OK, srrmsg="成功")
def news_release(): user = g.user if request.method == "GET": categorys = Category.query.all() category_list = [] for category in categorys: category_list.append(category.to_dict()) category_list.pop(0) print(category_list) data = {"categories": category_list} return render_template("user/user_news_release.html", data=data) # 获取post请求的参数 title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get('index_image') content = request.form.get('content') print(title) # 检查参数的完整性 if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg='参数缺失') # 把分类id转成int category_id = int(category_id) newsImg_data = index_image.read() try: newsImg_name = storage(newsImg_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='牛牛') news = News() news.user_id = user.id news.title = title news.category_id = category_id news.digest = digest news.index_image_url = QINIU_DOMIN_PREFIX + newsImg_name news.content = content news.source = "个人" news.status = 1 # 提交数据到数据库中 try: db.session.add(news) 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')
def news_release(): if request.method == "GET": categories = [] category_dict_li = [] try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) 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}) params_dict = request.form source = "个人发布" title = params_dict.get("title") category_id = params_dict.get("category_id") digest = params_dict.get("digest") index_image = request.files.get("index_image") content = params_dict.get("content") if not all([title, source, digest, content, category_id]): 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 = g.user.id news.status = 1 try: db.session.add(news) 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="发布成功,等待审核")
def user_news_release(): user = g.user if request.method == "GET": try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询错误") category_dict_list = [] for category in categories if categories else []: category_dict_list.append(category.to_dict()) category_dict_list.pop(0) data = { # "user_info": user.to_dict() if user else None, "categories": category_dict_list } return render_template("profile/user_news_release.html", data=data) else: param = request.form index_image = request.files.get("index_image") title = param.get("title") cid = param.get("category_id") digest = param.get("digest") content = param.get("content") source = "个人发布" if not all([user, title, cid, digest, content, index_image]): current_app.logger.error("参数错误") return jsonify(errno=RET.PARAMERR, errmsg="参数错误") index_data = index_image.read() try: index_name = pic_storage(index_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询错误") news = News() news.user_id = user.id news.title = title news.source = source news.content = content news.digest = digest news.category_id = cid news.status = 1 news.index_image_url = constants.QINIU_DOMIN_PREFIX + index_name try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询错误") return jsonify(errno=RET.OK, errmsg="发布成功")
def news_release(): if request.method == "GET": categories = [] # 在渲染时,需把【所有新闻分类】传回前端,供用户发布新闻时选择相应分类 try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) categories = [ category.to_dict() for index, category in enumerate(categories) if index > 0 ] data = { "categories": categories # 传回前端时,去掉分类“最新”(index=0) } return render_template("news/user_news_release.html", data=data) else: title = request.form.get("title", None) category_id = request.form.get("category_id", None) digest = request.form.get("digest", None) index_image = request.files.get("index_image", None) content = request.form.get( "content", None) # 课堂所用tinymce的html编辑器,content永远是默认值,不知为啥 source = "个人发布" if not all([title, category_id, digest, index_image, content, source]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误") try: category_id = int(category_id) index_image = index_image.read() # 尝试读取图片 except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数错误") try: image_key = storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="图片上传七牛云失败") news = News() news.title = title news.category_id = category_id news.digest = digest news.index_image_url = constants.QINIU_DOMIN_PREFIX + image_key news.content = content news.source = source news.user_id = g.user.id news.status = 1 # 当前新闻状态:0审核通过,1审核中,-1审核不通过 try: db.session.add(news) 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="新闻发布成功,等待审核")
def release_news(): """发布新闻""" user = g.user if not user: return render_template(url_for('index.index')) if request.method == 'GET': categories = [] try: # 查找新闻分类 categories = Category.query.filter(Category.id != 1).all() except Exception as e: current_app.logger.error(e) context = {'categories': categories} return render_template('news/user_news_release.html', context=context) if request.method == 'POST': # 接收参数, 校验参数 title = request.form.get("title") category_id = request.form.get("category_id") source = "个人发布" digest = request.form.get("digest") content = request.form.get("content") index_image = request.files.get("index_image") if not all([title, source, digest, content, index_image, category_id]): return jsonify(errno=response_code.RET.PARAMERR, errmsg='缺少参数') try: # 读取图片 index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=response_code.RET.PARAMERR, errmsg='参数错误') # 上传图片 image_key = upload_file(index_image) # 同步数据库 news = News() news.user_id = user.id news.title = title news.source = source news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + image_key news.category_id = category_id # 审核状态 news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=response_code.RET.DBERR, errmsg='同步数据失败') # 返回结果 return jsonify(errno=response_code.RET.OK, errmsg='发布成功!')
def news_release(): # GET请求 user = g.user if request.method == "GET": # 1. 加载新闻分类数据 # 2. 移除最新分类 categories = Category.query.filter(Category.id > 1).all() # 返回数据 data = {"categories": categories} return render_template("news/user_news_release.html", data=data) # 1. 获取要提交的数据 if request.method == "POST": title = request.form.get("title") category_id = request.form.get("category_id") digest = request.form.get("digest") index_image = request.files.get("index_image") content = request.form["content"] # 校验参数 if not all([title, category_id, digest, content]): return jsonify(errno=RET.DATAERR, errmsg="发布新闻信息不完整") # 3.取到图片,将图片上传到七牛云 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.category_id = category_id news.digest = digest news.content = content news.source = "个人发布" news.user_id = user.id news.index_image_url = constants.QINIU_DOMIN_PREFIX + "/" + key # 新闻状态,将新闻设置为1代表待审核状态 news.status = 1 # 手动设置新闻状态,在返回前commit提交 db.session.add(news) db.session.commit() # 返回 return jsonify(errno=RET.OK, errmsg="发布成功")
def news_release_info(): '''新闻发布''' user = g.user if not user: return jsonify(errno=RET.SESSIONERR, errmsg='用户未登录') if request.method == "GET": try: categories = Category.query.all() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="数据库错误") category_list = [] for category in categories: category_list.append(category.to_dict()) category_list.pop(0) data = { 'user_info': user.to_dict() if user else None, 'category_list': category_list } return render_template('news/user_news_release.html', data=data) title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get('index_image') content = request.form.get('content') if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg='参数不全') try: data = index_image.read() path = storage(data) except Exception as e: current_app.logger(e) return jsonify(errno=RET.IOERR, errmsg='数据读取错误') news = News() news.title = title news.source = '个人' news.category_id = category_id news.digest = digest news.index_image_url = constants.QINIU_DOMIN_PREFIX + path news.content = content news.user_id = user.id news.status = 1 # 0通过/1审核中/-1未用过 try: db.session.add(news) db.session.commit() except Exception as e: current_app.logger(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg='数据库错误') return jsonify(errno=RET.OK, errmsg='添加成功')
def news_release(): user = g.user if request.method == 'GET': category = Category.query.all() categories = [] for ca in category: categories.append(ca.to_dict()) categories.pop(0) data = {'categories': categories} return render_template('news/user_news_release.html', data=data) if request.method == 'POST': title = request.form.get('title') category = request.form.get('category_id', 2) digest = request.form.get('digest') source = '个人发布' index_image = request.files.get('index_image') content = request.form.get('content') if not all([title, category, category, content]): return jsonify(errno=RET.PARAMERR, errmsg='除了图片都要') try: news = News() news.title = title news.category_id = category news.source = source news.digest = digest news.content = content news.index_image_url = "" news.status = 1 news.user_id = user.id except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='创建数据失败') try: db.session.add(news) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='创建数据失败') # data={ # 'news':news.to_dict(), # 'user':user.to_dict if user else None # } return jsonify(errno=RET.OK, errmsg='yyyy')
def publish(): """新闻发布""" if request.method == 'GET': categories_mo_list = Category.query.filter(Category.id != 1).all() categories = [] for i in categories_mo_list: categories.append(i.to_dict()) data = {"categories": categories} return render_template('news/user_news_release.html', data=data) # 获取参数 user = g.user content = request.form.get("content") title = request.form.get('title') source = '个人发布' category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get("index_image").read() # # 判空 if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误") try: category_id = int(category_id) except Exception as e: current_app.logger.debug(e) return jsonify(errno=RET.PARAMERR, errmsg="参数错误") # 上传图片 try: key = upload_pic(index_image) except Exception as e: current_app.logger.debug(e) return jsonify(errno=RET.THIRDERR, errmsg="图片上传失败") # 保存数据 news = News() news.title = title news.category_id = category_id news.digest = digest news.index_image_url = QINIU_DOMIN_PREFIX + key news.content = content news.source = source news.user_id = user.id news.status = 1 try: db.session.add(news) except Exception as e: current_app.logger.debug(e) return jsonify(errno=RET.DBERR, errmsg="数据库保存失败") return jsonify(errno=RET.OK, errmsg="等待审核!")
def news_release(): user = g.user if not user: return redirect(url_for('index.index')) if request.method == 'GET': categories = None try: categories = Category.query.all() categories.pop(0) except Exception as e: logging.error(e) context = {"categories": categories} return render_template('news/user_news_release.html', context=context) if request.method == 'POST': title = request.form.get('title') # 新闻标题 source = '个人发布' category_id = request.form.get("category_id") digest = request.form.get('digest') content = request.form.get('content') index_image = request.files.get('index_image') if not all([title, source, category_id, digest, content, index_image]): return jsonify(errno=response_code.RET.PARAMERR, errmsg='缺少参数') try: index_image_data = index_image.read() except Exception as e: logging.error(e) return jsonify(errno=response_code.RET.PARAMERR, errmsg='参数错误') try: key = upload_file(index_image_data) except Exception as e: logging.error(e) return jsonify(errno=response_code.RET.THIRDERR, errmsg='上传七牛云失败') news = News() news.title = title news.source = source news.category_id = category_id news.content = content news.digest = digest news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.user_id = user.id news.status = 1 try: db.session.add(news) db.session.commit() except Exception as e: logging.error(e) return jsonify(errno=response_code.RET.DBERR, errmsg='添加新闻到数据库失败') return jsonify(errno=response_code.RET.OK, errmsg='添加新闻到数据库成功')
def news_release(): user = g.user if request.method == "GET": categorys = Category.query.all() categorys_list = [] for category in categorys: categorys_list.append(category.to_dict()) categorys_list.pop(0) data = {"categories": categorys_list} return render_template('news/user_news_release.html', data=data) # POST 提交,执行发布新闻操作 # 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="参数有误") url = index_image.read() # 上传到七牛云 返回七牛云的key key = storage(url) news = News() news.title = title news.source = source news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.category_id = category_id news.user_id = user.id news.status = 1 db.session.add(news) db.session.commit() return jsonify(errno=RET.OK, errmsg='发布成功')
def news_release(): if request.method == 'GET': # 首先获取到新闻分类,然后传递到模板页码,进行展示 category_list = Category.query.all() categorys = [] for category in category_list: categorys.append(category.to_dict()) categorys.pop(0) data = { "categories":categorys } return render_template('news/user_news_release.html',data=data) # 获取到表单页面提交过来的数据,获取的是用户发布的新闻数据 title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') index_image = request.files.get('index_image') content = request.form.get('content') if not all([title, category_id, digest, index_image, content]): return jsonify(errno = RET.PARAMERR,errmsg='参数错误') print("上传图片中") user = g.user # 尝试读取图片 index_image = index_image.read() # 将标题图片上传到七牛 key = storage(index_image) # 用户发布完成之后,我们需要把当前发布的新闻存储到数据库 news = News() news.title = title news.source = '个人来源' news.digest = digest news.content = content news.index_image_url = constants.QINIU_DOMIN_PREFIX + key news.category_id = category_id news.user_id = user.id # 当前状态一表示正在审核中 news.status = 1 db.session.add(news) db.session.commit() return jsonify(errno=RET.OK,errmsg='发布成功')
def news_release(): """发布新闻""" # GET请求 user = g.user if request.method == "GET": if not user: return redirect('/') # 1. 加载新闻分类数据 # 2. 移除最新分类 category_list = Category.query.all() categories = [] for category in category_list if category_list else []: categories.append(category.to_dict()) categories.pop(0) data = { 'categories': categories, } # 返回数据 return render_template('news/user_news_release.html', data=data) # 1. 获取要提交的数据 title = request.form.get('title') category_id = request.form.get('category_id') digest = request.form.get('digest') content = request.form.get('content') # 校验参数 if not all([title, category_id, digest, content]): return jsonify(errno=RET.PARAMERR, errmsg='请输入参数') news = News() # print(content) news.title = title news.source = '个人用户' news.user_id = user.id news.status = 1 news.category_id = category_id news.digest = digest news.content = content db.session.add(news) db.session.commit() return jsonify(errno=RET.OK, errmsg='发布新闻成功')
def news_release(): user = g.user if request.method == "GET": categories = Category.query.filter(Category.id != 1).all() categories_list = [] for cate in categories: categories_list.append(cate.to_dict()) data = { # 'user_info': user.to_dict if user else None, 'categories': categories } return render_template('news/user_news_release.html', data=data) title = request.form.get('title') category_id = request.form.get('category_id') print(category_id) digest = request.form.get('digest') index_image = request.files.get('index_image').read() content = request.form.get('content') source = '个人发布' print(title, category_id) print(digest) print(index_image) print(content) if not all([title, source, digest, content, index_image, category_id]): return jsonify(errno=RET.PARAMERR, errmsg='参数不全') news = News() key = storage(index_image) index_image_url = constants.QINIU_DOMIN_PREFIX + key news.title = title news.category_id = category_id news.content = content news.digest = digest news.index_image_url = index_image_url news.status = 1 news.source = source news.user_id = user.id # user.id 不写不报错. 但是会过滤不出来. db.session.add(news) db.session.commit() return jsonify(errno=RET.OK, errmsg='ok')