def news(id): post = News.query.filter_by(id=id).first() form = NewsForm() if form.submit_new.data and form.validate(): post = News(content=form.content.data, timestamp=datetime.now()) db.session.add(post) db.session.commit() flash('News item posted!', 'success') return redirect(url_for('main.news')) if form.submit_edit.data and form.validate() and post is not None: post.content = form.content.data post.timestamp = datetime.now() db.session.add(post) db.session.commit() flash('News item edited') return redirect(url_for('main.news')) if form.submit_delete.data and post is not None: db.session.delete(post) db.session.commit() flash('News item deleted', 'danger') return redirect(url_for('main.news')) elif request.method == 'GET' and post is not None: form.content.data = post.content page = request.args.get('page', 1, type=int) news = News.query.order_by(News.timestamp.desc()).paginate( page, current_app.config['NEWS_PER_PAGE'], False) next_url = url_for('main.news', page=news.next_num) \ if news.has_next else None prev_url = url_for('main.news', page=news.prev_num) \ if news.has_prev else None return render_template('news.html', form=form, news=news.items, next_url=next_url, prev_url=prev_url, post=post)
def user_news_release(): from app.models import Category, News from app.utils.qiniu.image_storage import storage from app import db if request.method == "GET": # 加载新闻分类数据 categories = [] 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_id = session["user_id"] # 1. 取到请求参数 source = "个人发布" # 来源 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") # 参数转换 try: category_id = int(category_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, 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.DBERR, errmsg="参数有误") # 2. 判断参数 if not all([title, category_id, digest, index_image, content]): return jsonify(errno=RET.PARAMERR, errmsg="参数错误") new = News() new.title = title new.digest = digest new.source = source new.content = content new.index_image_url = "http://pv875q204.bkt.clouddn.com/" + key new.category_id = category_id new.user_id = user_id # 1代表待审核状态 new.status = 1 try: # 插入提交数据 db.session.add(new) 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 edit(request): print request.method if request.method == "POST": title = request.POST.get("title", None) content = request.POST.get("content", None) news_id = request.POST.get("news_id", None) delete_tag = request.POST.get("delete_tag", None) print title print content print news_id print delete_tag if delete_tag is None: if title is None or content is None: return HttpResponse("error") # 新建news if news_id is None or news_id == "": print news_id try: news = News() news.title = title news.content = content news.author = "zhaolong" news.read_count = 0 news.save() return HttpResponse("success") except: return HttpResponse("error") # 更新news 内容 else: try: news = News.objects.get(news_id=int(news_id)) news.title = title news.content = content news.author = "zhaolong" news.save() return HttpResponse("success") except: return HttpResponse("error") # 删除news else: if news_id is None: return HttpResponse("error") try: news = News.objects.get(news_id=int(news_id)) news.delete() return HttpResponse("success") except: return HttpResponse("error") elif request.method == "GET": try: news_id = int(request.GET.get("nid", -1)) news=News.objects.get(pk=news_id) form = UEditorTestModelForm(instance= news) except Exception, e: print str(e) form = TestUEditorForm( initial={'content': '请在此输入文字'} ) news = None return render(request, "adminer/editNews.html", { 'form': form, 'news': news, })
def news_release(): if request.method == "GET": categories = [] try: # 获取所有的分类数据 categories = Category.query.all() except Exception as e: current_app.logger.error(e) # 定义列表保存分类数据 categories_dict_list = [] for category in categories: # 获取字典 cate_dict = category.to_dict() # 拼接内容 categories_dict_list.append(cate_dict) # 移除"最新"分类 categories_dict_list.pop(0) data = { "categories": categories_dict_list } # 返回内容 return render_template('profile/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="参数有误") # 1.2尝试读取图片 try: index_image = index_image.read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数有误") # 2.将标题图片上传到七牛 try: key = pic_storage(index_image) except Exception as e: current_app.logger.error(e) return jsonify(errno=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 # 4.保存到数据库 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="保存数据失败") # 5.返回结果 return jsonify(errno=RET.OK, errmsg="发布成功,等待审核")