Ejemplo n.º 1
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")
Ejemplo n.º 2
0
def news_release():
    # 判断用户是否登录
    user = g.user
    if not user:
        return abort(404)

    if request.method == 'GET':
        categories = list()
        try:
            categories = Category.query.all()  # type:Category
            categories.pop(0)
        except BaseException as e:
            current_app.logger.error(e)
        return render_template('news/user_news_release.html',
                               categories=categories)  #
    # POST
    else:
        # 获取参数
        title = request.form.get('title')
        digest = request.form.get('digest')
        category_id = request.form.get('category_id')
        index_image = request.files.get('index_image')  # type:FileStorages
        content = request.form.get('content')
        # 校验参数
        if not all([title, digest, content, category_id]):
            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.digest = digest
        news.source = '个人发布'
        news.category_id = category_id
        news.create_time = datetime.now()
        news.status = 1
        news.content = content
        news.user_id = user.id
        if index_image:
            # 将照片存入第三方平台
            index_image = index_image.read()  #
            try:
                files_name = upload_img(index_image)
            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 + files_name
        try:
            db.session.add(news)
            db.session.commit()
        except BaseException as e:
            current_app.logger.error(e)
            db.session.rollback()
            return jsonify(errno=RET.DBERR, errmsg=error_map[RET.DBERR])

        # 返回json
        return jsonify(errno=RET.OK, errmsg=error_map[RET.OK])