Example #1
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="发布成功")
Example #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')
Example #3
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")
Example #4
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='发布成功')
Example #5
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='新闻发布成功,等待审核')
Example #6
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="新闻提交成功")
Example #7
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")
Example #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])
Example #9
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='新闻发布成功')
Example #10
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])
Example #11
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='新闻发布成功')
Example #12
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')
Example #13
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="成功")
Example #14
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="发布成功,等待审核")
Example #15
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='发布成功!')
Example #16
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")
Example #17
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="等待审核!")
Example #18
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')
Example #19
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='添加新闻到数据库成功')
Example #20
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='发布成功')
Example #21
0
 def wrapper(*args, **kwargs):
     # 查询排名前10的新闻
     news_list = []  # type:News
     try:
         news_list = News.query.order_by(News.clicks.desc()).limit(10).all()
     except Exception as e:
         current_app.logger.error(e)
     g.news_list = [News.to_dict() for News in news_list]
     return func(*args, **kwargs)
Example #22
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')
Example #23
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)
        data = {
            "categories": category_list
        }
        return render_template("news/user_news_release.html", data=data)

    # 1.获取表单中要提交的数据
    title = request.form.get("title")
    source = "个人发布"  # 发布来源
    digest = request.form.get("digest")  # 新闻摘要
    content = request.form.get("content")  # 新闻内容
    index_image = request.files.get("index_image").read()  # 新闻图片,存到七牛云
    category_id = request.form.get("category_id")  # 新闻分类id
    # 1.1 判断数据是否有值
    if not all([title, source, digest, content, index_image, category_id]):
        return jsonify(errno=RET.PARAMERR, errmsg="参数有误")

    key = storage(index_image)  # 新闻图片存到七牛云

    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="发布成功,请等待审核")