Exemplo n.º 1
0
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")
Exemplo n.º 2
0
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')
Exemplo n.º 3
0
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="发布成功")
Exemplo n.º 4
0
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")
Exemplo n.º 5
0
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='发布成功')
Exemplo n.º 6
0
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='新闻发布成功,等待审核')
Exemplo n.º 7
0
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="新闻提交成功")
Exemplo n.º 8
0
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])
Exemplo n.º 9
0
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")
Exemplo n.º 10
0
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='新闻发布成功')
Exemplo n.º 11
0
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='新闻发布失败')
Exemplo n.º 12
0
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")
Exemplo n.º 13
0
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])
Exemplo n.º 14
0
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])
Exemplo n.º 15
0
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='新闻发布成功')
Exemplo n.º 16
0
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="成功")
Exemplo n.º 17
0
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')
Exemplo n.º 18
0
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="发布成功,等待审核")
Exemplo n.º 19
0
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="发布成功")
Exemplo n.º 20
0
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="新闻发布成功,等待审核")
Exemplo n.º 21
0
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='发布成功!')
Exemplo n.º 22
0
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="发布成功")
Exemplo n.º 23
0
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='添加成功')
Exemplo n.º 24
0
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')
Exemplo n.º 25
0
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="等待审核!")
Exemplo n.º 26
0
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='添加新闻到数据库成功')
Exemplo n.º 27
0
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='发布成功')
Exemplo n.º 28
0
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='发布成功')
Exemplo n.º 29
0
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='发布新闻成功')
Exemplo n.º 30
0
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')