Ejemplo n.º 1
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(
            title=data['title'],
            url=url,
            info=data["info"],
            logo=logo,
            star=int(data["star"]),
            playnum=0,
            commentnum=0,
            tag_id=int(data["tag_id"]),
            area=data["area"],
            release_time=data["release_time"],
            length=data["length"],
        )
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 2
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        print(data)
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], 'rw')
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config['UP_DIR'] + url)
        form.logo.data.save(app.config['UP_DIR'] + logo)
        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      star=int(data['star']),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data['tag_id']),
                      area=data['area'],
                      release_time=data['release_time'],
                      length=data['length'])
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功', 'ok')
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Ejemplo n.º 3
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(
            title=data["title"],
            url=url,
            info=data["info"],
            logo=logo,
            star=int(data["star"]),
            playnum=0,
            commentnum=0,
            tag_id=int(data["tag_id"]),
            area=data["area"],
            release_time=data["release_time"],
            length=data["length"]
        )
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功", "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 4
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count == 1:
            flash('标题已存在!', 'err')
            return redirect(url_for('admin.movie_add'))
        file_url = secure_filename(form.url.data.filename)  # 获取后缀
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], 'rw')
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config['UP_DIR'] + url)
        form.logo.data.save(app.config['UP_DIR'] + logo)
        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            playnum=0,
            commentnum=0,
            tag_id=int(data['tag_id']),
            area=data['area'],
            # release_time=data['release_time'],
            length=data['length'])
        db.session.add(movie)
        db.session.commit()
        flash("添加成功!", "ok")
        return redirect(url_for('admin.movie_add'))

    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 5
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        if not os.path.exists(app.config["UP_DIR"]):  # 创建“上传文件夹”
            os.makedirs(app.config["UP_DIR"])  # 创建目录
            os.chmod(
                app.config["UP_DIR"], 644
            )  # 授权 r=4, w=2, r=1  # os.chmod(app.config["UP_DIR"], 'rw')

        file_url = secure_filename(form.url.data.filename)  # werkzeu工具安全文件名
        url = change_filename(file_url)
        form.url.data.save(app.config["UP_DIR"] + url)  # 保存文件操作
        file_logo = secure_filename(form.logo.data.filename)
        logo = change_filename(file_logo)
        form.logo.data.save(app.config["UP_DIR"] + logo)  # 保存文件操作

        movie = Movie(title=data["title"],
                      url=url,
                      logo=logo,
                      info=data["info"],
                      star=int(data["star"]),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data["tag_id"]),
                      area=data["area"],
                      release_time=data["release_time"],
                      length=data["length"])
        db.session.add(movie)
        db.session.commit()
        flash("电影添加成功", "ok")
        return redirect(url_for("admin.movie_list", page=1))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 6
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        print(form.url.data)
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):
            os.mkdir(app.config['UP_DIR'])

        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(os.path.join(app.config['UP_DIR'], url))
        form.logo.data.save(os.path.join(app.config['UP_DIR'], logo))

        data = form.data
        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      speaker=data['speaker'],
                      speaker_info=data['speaker_info'])
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功!', "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 7
0
def movie_edit(id=None):
    """电影编辑"""
    form = MovieForm()
    form.submit.label.text = "编辑"
    # 编辑状态,url和logo已经存在,表单不必进行过滤
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    if request.method == 'GET':
        form.info.data = movie.info
        form.star.data = movie.star
        form.tag_id.data = movie.tag_id
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        # 片名已经存在,不必重复进行编辑
        if movie_count == 1 and movie.title != data['title']:
            flash("片名已经存在,请重新编辑!", "err")
            return redirect(url_for('admin.movie_edit', id=id))

        # 如果目录不存在,再创建一个多级目录
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], 'rw')

        # 上传视频
        if form.url.data != '':  # 说明已经重新上传了视频
            # 先删除本地的视频
            if os.path.exists(app.config['UP_DIR'] + movie.url):
                os.remove(app.config['UP_DIR'] + movie.url)
                print("rm-movie.url:" + app.config['UP_DIR'] + movie.url)
            file_url = secure_filename(form.url.data.filename)
            print("file_url:"+file_url)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR"] + movie.url)
            print("save-movie.url:" + app.config['UP_DIR'] + movie.url)

        # 上传logo
        if form.logo.data != '':  # 说明已经重新上传了封面
            # 先删除本地的封面
            if os.path.exists(app.config['UP_DIR'] + movie.logo):
                os.remove(app.config['UP_DIR'] + movie.logo)
                print("rm-movie.logo:" + app.config['UP_DIR'] + movie.logo)
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)

        movie.title = data['title']
        movie.info = data['info']
        movie.star = data['star']
        movie.tag_id = data['tag_id']
        movie.area = data['area']
        movie.length = data['length']
        movie.release_time = data['release_time']
        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功!", "ok")
        return redirect(url_for('admin.movie_edit', id=id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 8
0
def movie_edit(movie_id=None):
    if movie_id is None:
        movie_id = 1

    form = MovieForm()
    form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]

    form.url.validators = []
    form.logo.validators = []

    movie = Movie.query.get_or_404(int(movie_id))
    print('查询操作成功')
    if request.method == 'GET':  # 在修改前在修改栏里面显示原来的值作为默认值
        # --> fixme 不能在编辑页面中的默认编辑框中保存默认文件
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star

    if form.validate_on_submit() is True:
        data = form.data

        # 对片名进行唯一性检查,如果已经存在该片名则返回错误信息返回编辑页面
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count is not 0 and movie.title != data['title']:
            flash('该片名已经存在', 'err')
            return redirect(url_for('admin.movie_edit', movie_id=movie_id))

        movie.title = data['title']  # 修改
        movie.star = data['star']
        movie.info = data['info']
        movie.tag_id = data['tag_id']
        movie.area = data['area']
        movie.length = data['length']
        movie.release_time = data['release_time']

        # 将视频以及图片文件保存到本地
        path = create_app().config['UP_DIR']
        if os.path.exists(path) is False:
            os.makedirs(path)  # 当保存路径不存在时进行创建 √

        if form.url.data.filename is not '':
            movie.url = change_filename(form.url.data.filename)
            form.url.data.save(path + movie.url)

        if form.logo.data.filename is not '':
            movie.logo = change_filename(form.logo.data.filename)
            form.logo.data.save(path + movie.logo)

        # logo = change_filename(form.logo.data.filename)
        #
        # form.url.data.save(path + url)
        # form.logo.data.save(path + logo)

        db.session.add(movie)  # 保存属性名以及属性内容(str)
        db.session.commit()

        flash('修改成功', 'ok')
        return redirect(url_for('admin.movie_edit', movie_id=movie.id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 9
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []  # 因为可以不做更改,所以不需要校验
    form.logo.validators = []
    movie = Movie.query.get_or_404(id)
    page = page_data.page if page_data is not None else 1
    if request.method == "GET":
        form.info.data = movie.info
        form.star.data = movie.star
        form.tag_id.data = movie.tag_id
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1 and movie.title != data['title']:
            flash("片名已经存在!", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        if not os.path.exists(app.config['UP_DIR']):  # 存放目录不存在则创建
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], "rw")

        if form.url.data.filename != '':
            old_url = movie.url
            file_url = secure_filename(
                form.url.data.filename)  # 获取并转化为安全的电影文件名
            movie.url = change_filename(file_url)  # 调用函数生成新的文件名
            form.url.data.save(app.config['UP_DIR'] + movie.url)  # 保存上传的数据
            if os.path.exists(app.config['UP_DIR'] + old_url):  # 删除旧文件
                os.remove(app.config['UP_DIR'] + old_url)

        if form.logo.data.filename != '':
            old_logo = movie.logo
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config['UP_DIR'] + movie.logo)
            if os.path.exists(app.config['UP_DIR'] + old_logo):
                os.remove(app.config['UP_DIR'] + old_logo)

        oplog = Oplog(admin_id=session["admin_id"],
                      ip=request.remote_addr,
                      reason="修改电影:%s(原名:%s)" % (data["title"], movie.title))
        db.session.add(oplog)
        db.session.commit()

        movie.title = data["title"]
        movie.info = data["info"]
        movie.star = int(data["star"])
        movie.tag_id = int(data["tag_id"])
        movie.area = data["area"]
        movie.release_time = data["release_time"]
        movie.length = data["length"]
        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功!", "ok")
        return redirect(url_for("admin.movie_list", page=page))
    return render_template("admin/movie_edit.html",
                           form=form,
                           movie=movie,
                           page=page)
Ejemplo n.º 10
0
def movieEdit(id=None):
    if id is not None:
        form = MovieForm()
        movie = Movie.query.get_or_404(id)
        movie_title = movie.title
        if request.method == "GET":
            form.info.data = movie.info
            form.star.data = movie.star
            form.tag_id.data = movie.tag_id
        if form.validate_on_submit():
            data = form.data
            # 获取到视频的地址
            file_url = form.url.data.filename
            # 获取到封面文件
            file_logo = form.logo.data.filename
            # 定义文件的保存
            # 文件是否存在
            if not os.path.exists(app.config['UP_DIR']):
                # 如果不存在就创建
                os.mkdir(app.config['UP_DIR'])
            # 对视频的名称进行重命名
            url = change_filename(file_url)
            # 对封面图片进行重命名
            logo = change_filename(file_logo)
            # 保存视频
            form.url.data.save(app.config["UP_DIR"] + url)
            # 保存封面
            form.logo.data.save(app.config["UP_DIR"] + logo)
            # 删除之前的数据, 如果文件不存在,有可能抛出异常
            try:
                # 删除视频文件
                os.remove(app.config["UP_DIR"] + movie.url)
                # 删除封面图
                os.remove(app.config["UP_DIR"] + movie.logo)
            except:
                pass
            movie.title = data.get('title')
            movie.url = url
            movie.info = data.get('info')
            movie.logo = logo
            movie.star = int(data.get('star'))
            movie.tag_id = int(data.get('tag_id'))
            movie.arga = data.get('arga')
            movie.release_time = data.get('release_time')
            movie.length = data.get('length')
            db.session.add(movie)
            db.session.commit()
            flash("电影修改成功")
            oplog = OpLog(admin_id=session.get("admin_id"),
                          ip=request.remote_addr,
                          reason="编辑电影:{movie_title}-->{movie}".format(
                              movie_title=movie_title,
                              movie=data.get('title')))
            db.session.add(oplog)
            db.session.commit()
            return redirect(url_for("admin.movieEdit", id=id))
        return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 11
0
def movie_edit(id=None):
    form = MovieForm()
    movie = Movie.query.get_or_404(int(id))
    if form.validate_on_submit():
        data = form.data

    flash("电影修改成功", 'ok')
    redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template("admin/movie_edit.html", form=form,
                           movie=movie)  # 电影列表  # 编辑上映预告
Ejemplo n.º 12
0
def movie_edit(id=None):
    form = MovieForm()
    # 编辑之前url,logo是存在的,所以不做过滤。
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    if request.method == 'GET':
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count == 1 and movie.title != data['title']:
            flash("电影片名已经存在!", 'err')
            return redirect(url_for("admin.movie_edit", id=id))

        # 判断文件并且创建文件
        if not os.path.exists(app.config["UP_DIR_MOVIE"]):
            os.makedirs(app.config["UP_DIR_MOVIE"])
            os.chmod(app.config["UP_DIR_MOVIE"], "rw")

        if not os.path.exists(app.config["UP_DIR_MOVIE_IMG"]):
            os.makedirs(app.config["UP_DIR_MOVIE_IMG"])
            os.chmod(app.config["UP_DIR_MOVIE_IMG"], "rw")

        if form.url.data != "":
            file_url = str(form.url.data.filename)
            # 删除原来资源
            file_del(app.config["UP_DIR_MOVIE"], movie.url)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR_MOVIE"] + movie.url)

        if form.logo.data != "":
            file_logo = str(form.logo.data.filename)
            # 删除原来资源
            file_del(app.config["UP_DIR_MOVIE_IMG"], movie.logo)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR_MOVIE_IMG"] + movie.logo)

        # 操作日志
        add_log('原电影《%s》修改成新电影《%s》' % (movie.title, data['title']))

        movie.title = data['title']
        movie.tag_id = int(data['tag_id'])
        movie.star = int(data['star'])
        movie.info = data['info']
        movie.area = data['area']
        movie.release_time = data['release_time']
        movie.length = data['length']
        db.session.add(movie)
        db.session.commit()
        flash("编辑电影成功!", 'ok')
        return redirect(url_for("admin.movie_edit", id=id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 13
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(id)
    if request.method == 'GET':
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count >= 1 and movie.title != data['title']:
            flash('修改电影失败,片名重复', 'err')
            return redirect(url_for('admin.movie_edit', id=movie.id))
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])  # 创建目录
            os.chmod(app.config['UP_DIR'], stat.S_IRWXU)  # 授权可读写

        if form.url.data != '':
            file_url = app.config['UP_DIR'] + movie.url
            if os.path.isfile(file_url):
                os.remove(file_url)

            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config['UP_DIR'] + movie.url)

        if form.logo.data != '':
            file_logo = app.config['UP_DIR'] + movie.logo
            if os.path.isfile(file_logo):
                os.remove(file_logo)

            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config['UP_DIR'] + movie.logo)

        movie.star = data['star']
        movie.tag_id = data['tag_id']
        movie.info = data['info']
        movie.title = data['title']
        movie.area = data['area']
        movie.length = data['length']
        movie.release_time = data['release_time']
        oplog = Oplog(
            admin_id=session['admin_id'],
            reason='修改电影:%s' % data['title'],
            ip=request.remote_addr
        )
        db.session.add(movie)
        db.session.add(oplog)
        db.session.commit()
        flash('修改电影成功', 'ok')
        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 14
0
def movie_add():
    form = MovieForm()

    username = get_username()


    if form.validate_on_submit():
        data = form.data

        # 变成一个安全的名称
        file_url = secure_filename(form.url.data.filename)

        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], 'rw')

        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)

        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            playnum=0,
            commentnum=0,
            star=int(data['star']),
            tag_id=int(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length'],

        )
        db.session.add(movie)

        oplog = Oplog(
            ip=request.remote_addr,
            admin_id=session["admin_id"],
            reson='添加电影' + '<' + data['title'] + '>',

        )
        db.session.add(oplog)

        db.session.commit()
        flash('添加电影成功', 'ok')
        return redirect((url_for('admin.movie_add')))
    username = get_username()
    context = {
        'username': username
    }
    return render_template("admin/movie_add.html", form=form, context=context)
Ejemplo n.º 15
0
def movie_edit(id=None):
    form = MovieForm()
    form.tag_id.choices = [(i.id, i.name) for i in Tag.query.all()]
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.filter_by(id=id).first_or_404()

    if request.method == "GET":
        form.info.data = movie.info
        form.star.data = movie.star
        form.tag_id.data = movie.tag_id

    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie.title != data["title"] and movie_count == 1:
            flash("该电影名已经存在", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        # 先用 pypinyin 将中文转为拼音 这样 secure_filename 就不会因为文件名是中文而过滤掉了
        # 参考 https://pdf-lib.org/Home/Details/6002
        # 保存封面和短片文件
        if not os.path.exists(app.config["UPLOAD_DIR"]):
            os.makedirs(app.config["UPLOAD_DIR"])
            os.chmod(app.config["UPLOAD_DIR"], "rw")

        # 如果表单 url 数据不为空 说明上传了文件
        # 如果表单的 url 为空 则 form.url.data 为空 且为 str 类型
        if form.url.data:
            file_url = secure_filename("".join(
                lazy_pinyin(form.url.data.filename)))
            movie.url = rename_filename(file_url)
            form.url.data.save(app.config["UPLOAD_DIR"] + movie.url)

        # 如果表单 logo 数据不为空 说明上传了文件
        # 如果表单的 logo 为空 则 form.logo.data 为空 且为 str 类型
        if form.logo.data:
            file_logo = secure_filename("".join(
                lazy_pinyin(form.logo.data.filename)))
            movie.logo = rename_filename(file_logo)
            form.logo.data.save(app.config["UPLOAD_DIR"] + movie.logo)

        movie.title = data["title"]
        movie.info = data["info"]
        movie.star = data["star"]
        movie.tag_id = data["tag_id"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]

        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功", "ok")
        return redirect(url_for("admin.movie_edit", id=id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 16
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    # 编辑页面参数无法获得和数据库对应的值
    if request.method == "GET":
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    # 数据库操作
    if form.validate_on_submit():  # 提交表单时进行验证
        # 可以修改的数据
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1:
            flash("片名已经存在", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        # 如果找不到存放电影的目录,就自动创建一个多级目录
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])  # 建文件夹
            os.chmod(app.config["UP_DIR"], "rw")  # 给文件授权,让可读可写

        # 如果上传的视频不等于空,说明更改了文件
        if form.url.data != "":
            file_url = secure_filename(form.url.data.filename)  # 获取url的地址,secure_filename把filename转换成安全的名称
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR"] + movie.url)  # 保存
        else:
            flash("上传的视频不能为空", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        # 如果上传的图片不等于空,说明更改了文件
        if form.logo.data != "":
            file_logo = secure_filename(form.logo.data.filename)  # 获取logo的地址
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)  # 保存
        else:
            flash("上传的封面不能为空", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        movie.star = data['star']
        movie.tag_id = data['tag_id']
        movie.info = data['info']
        movie.title = data['title']
        movie.area = data['area']
        movie.length = data['length']
        movie.release_time = data['release_time']
        db.session.add(movie)
        db.session.commit()
        flash("电影修改成功", "ok")
        return redirect(url_for("admin.movie_edit", id=movie.id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 17
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []

    movie = Movie.query.get_or_404(int(id))
    if request.method == 'GET':
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star

    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()

        if movie_count > 0 and movie.title != data['title']:
            flash('片名已经存在', 'err')
            return redirect(url_for('admin.movie_edit', id=id))

        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"])

        if form.url.data.filename != '':
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config['UP_DIR'] + movie.url)
        if form.logo.data.filename != '':
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config['UP_DIR'] + movie.logo)

        movie.title = data['title']
        movie.info = data['info']
        movie.tag_id = int(data['tag_id'])
        movie.star = int(data['star'])
        movie.area = data['area']
        movie.release_time = data['release_time']
        movie.length = data['length']

        db.session.add(movie)
        db.session.commit()
        flash("编辑电影成功!", "ok")

        op_log = Oplog(
            admin_id=session['admin_id'],
            ip=request.remote_addr,
            reason="编辑电影<%s>" % movie['name']
        )
        db.session.add(op_log)
        db.session.commit()
        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 18
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    # 根据id查询需要修改的数据
    movie = Movie.query.get_or_404(id)
    # 判断是什么GET请求进行回显下拉选择
    if request.method == "GET":
        form.info.data = movie.info  # 对文本域进行赋值
        form.tag_id.data = movie.tag_id  # 对下拉框回显
        form.star.data = movie.star  # 对下拉框回显
    if form.validate_on_submit():
        data = form.data
        # 判断需要修改的片名是否存在
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count != 0 and movie.title != data['title']:
            flash("片名已存在!", 'err')
            return redirect(url_for('admin.movie_edit', id=id))
        # 修改片名与封面
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        if form.url.data != "":
            os.remove(app.config['UP_DIR'] + movie.url)
            file_url = form.url.data.filename
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR"] + movie.url)
        if form.logo.data != "":
            os.remove(app.config['UP_DIR'] + movie.logo)
            file_logo = form.logo.data.filename
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)
        # 修改的数据
        movie.star = data['star']
        movie.tag_id = data['tag_id']
        movie.info = data["info"]
        movie.title = data["title"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]
        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功", "ok")
        # 操作日志
        oplog = Oplog(admin_id=session['admin_id'],
                      ip=request.remote_addr,
                      reason="修改电影%s" % data['title'])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.movie_edit", id=movie.id))
    # movie = movie 为给前台赋值
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 19
0
def movie_add():
    """
    添加电影
    """
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data  # 获取数据

        # 判断片名是否存在
        movie = Movie.query.filter_by(title=data["title"]).count()
        # 说明已经有这个标签了
        if movie == 1:
            flash("片名已存在", "err")
            return redirect(url_for("admin.movie_add"))

        # 检测文件安全
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)

        # 检测路径,否则创建
        if not os.path.exists(app.config["UP_DIR"]):
            # 创建一个多级目录
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")  # 授权读写

        # 处理文件
        url = change_filename(file_url)
        logo = change_filename(file_logo)

        # 保存文件
        form.url.data.save(app.config["UP_DIR"] + url)  # 拼接字符串
        form.logo.data.save(app.config["UP_DIR"] + logo)

        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      star=int(data['star']),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data['tag_id']),
                      area=data['area'],
                      length=data['length'],
                      release_time=data['release_time'])

        db.session.add(movie)
        db.session.commit()

        flash("添加电影成功!", "ok")
        return redirect(url_for('admin.movie_add'))

    return render_template('admin/movie_add.html', form=form)  # 电影添加
Ejemplo n.º 20
0
def movie_edit(id=None):
    form = MovieForm()
    form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]
    movie = Movie.query.get_or_404(id)
    if request.method == "GET":
        form.title.flags.required = False
        form.url.flags.required = False
        form.info.flags.required = False
        form.logo.flags.required = False
        form.star.flags.required = False
        form.tag_id.flags.required = False
        form.area.flags.required = False
        form.length.flags.required = False
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    form.url.validators = []
    form.logo.validators = []
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(
            title=data["title"]).count()  # title是唯一unique
        if movie.title != data["title"] and movie_count == 1:
            flash("电影已存在", category="error")
        else:
            if not os.path.exists(app.config["UP_DIR"]):
                os.makedirs(app.config["UP_DIR"])
                os.chmod(app.config["UP_DIR"], "rw")
            if form.url.data != '':
                file_url = secure_filename(form.url.data.filename)
                movie.url = change_filename(file_url)
                form.url.data.save(app.config["UP_DIR"] + movie.url)
            if form.logo.data != '':
                file_logo = secure_filename(form.logo.data.filename)
                movie.logo = change_filename(file_logo)
                form.logo.data.save(app.config["UP_DIR"] + movie.logo)
            try:
                movie.title = data["title"]
                movie.info = data['info']
                movie.tag_id = data["tag_id"]
                movie.star = data["star"]
                movie.area = data["area"]
                movie.length = data["length"]
                movie.release_time = data["release_time"]
                db.session.add(movie)
                db.session.commit()
                flash("电影修改成功", category="ok")
            except Exception as e:
                print(e)
                flash("电影修改失败", category="error")
                db.session.rollback()
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 21
0
def movie_edit(id=None):
    form = MovieForm()

    # 已经存在于数据库且默认可以为空的项,将其validators置为空
    form.url.validators = []
    form.logo.validators = []

    movie = Movie.query.get_or_404(int(id))

    # 以下3项信息需手动查询并赋值给表单才能在页面显示正确结果,如果用form.xxx(value=movie.xxx) 这种
    # 形式将无法显示真实结果,原因未知
    if request.method == "GET":
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star

    if form.validate_on_submit():
        data = form.data

        movie_count = Movie.query.filter_by(title=data.get('title')).count()
        if movie_count == 1 and movie.title != data.get('title'):
            flash("片名已经存在!", "err")
            return redirect(url_for('admin.movie_edit', id=id))

        # 获取需上传文件的修改项
        if form.url.data.filename != "":
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            form.url.data.save(UP_DIR + movie.url)

        if form.logo.data.filename != "":
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(UP_DIR + movie.logo)

        # 获取其他修改项
        movie.star = data.get('star')
        movie.tag_id = data.get('tag_id')
        movie.info = data.get('info')
        movie.title = data.get('title')
        movie.area = data.get('area')
        movie.length = data.get('length')
        movie.release_time = data.get('release_time')

        db.session.add(movie)
        db.session.commit()

        flash("修改电影成功!", "ok")

        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 22
0
def movie_edit(id=None):
    form = MovieForm()
    # 这个是编辑的,所以url和logo肯定有的,所以不用查询
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    # 编写验证逻辑

    if request.method == "GET":
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        # 注意Movie,是大写的
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1 and movie.title != data["title"]:
            flash("片名已经存在!", "err")
            return redirect(url_for("admin.movie_edit", id=id))

        if not os.path.exists(app.config["UP_DIR"]):
            # 创建文件目录
            os.makedirs(app.config["UP_DIR"])
            # 增加读写的权限
            os.chmod(app.config["UP_DIR"], "rw")
            # --------------url
        if form.url.data.filename != "":  # 不为空,说明更改过了图片
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            movie_url_del = movie.url
            form.url.data.save(app.config["UP_DIR"] + movie.url)

            # --------------logo
        if form.logo.data.filename != "":  # 不为空,说明更改过了logo
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            movie_logo_del = movie.logo
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)

        movie.star = data["star"]
        movie.tag_id = data["tag_id"]
        movie.info = data["info"]
        movie.title = data["title"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]
        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功!", "ok")
        return redirect(url_for("admin.movie_edit", id=id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 23
0
def movie_add():
    form = MovieForm()
    form.tag_id.choices = [(i.id, i.name) for i in Tag.query.all()]
    if form.validate_on_submit():
        data = form.data
        # 判断是否标题重复
        movie = Movie.query.filter_by(title=data["title"]).count()
        if movie == 1:
            flash("该电影已经存在", "err")
            return render_template("admin/movie_add.html", form=form)

        # 先用 pypinyin 将中文转为拼音 这样 secure_filename 就不会因为文件名是中文而过滤掉了
        # 参考 https://pdf-lib.org/Home/Details/6002
        # 保存封面和短片文件
        if not os.path.exists(app.config["UPLOAD_DIR"]):
            os.makedirs(app.config["UPLOAD_DIR"])
            os.chmod(app.config["UPLOAD_DIR"], "rw")

        file_url = secure_filename("".join(lazy_pinyin(
            form.url.data.filename)))
        url = rename_filename(file_url)
        form.url.data.save(app.config["UPLOAD_DIR"] + url)

        file_logo = secure_filename("".join(
            lazy_pinyin(form.logo.data.filename)))
        logo = rename_filename(file_logo)
        form.logo.data.save(app.config["UPLOAD_DIR"] + logo)

        movie = Movie(
            title=data["title"],
            url=url,
            info=data["info"],
            logo=logo,
            star=int(data["star"]),
            playnum=0,
            commentnum=0,
            tag_id=int(data["tag_id"]),
            area=data["area"],
            release_time=data["release_time"],
            length=data["length"],
            uuid=uuid.uuid4().hex,
        )
        db.session.add(movie)
        oplog = Oplog(admin_id=session["admin_id"],
                      ip=request.remote_addr,
                      reason="添加电影:{0}".format(data["title"]))
        db.session.add(oplog)
        db.session.commit()
        flash("添加电影成功", "ok")
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 24
0
def movie_add():
    form = MovieForm()
    # 上传电影操作
    if form.validate_on_submit():
        # 获取表单数据
        data = form.data
        # 查找电影看是否存在
        movie = Movie.query.filter_by(title=data["title"]).count()
        if movie != 0:
            flash("您要添加的电影已存在库中", "err")
            return redirect(url_for('admin.movie_add'))
        # 如果库中不存在电影则添加
        # 对上传文件进行处理
        file_url = form.url.data.filename
        # print(file_url)
        file_logo = form.logo.data.filename
        # print(file_logo)
        # 上传路径是否存在
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])  # 创建文件目录
            os.chmod(app.config['UP_DIR'], 'rw')  # 读写权限
        # 改名
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存
        form.url.data.save(app.config['UP_DIR'] + url)
        form.logo.data.save(app.config['UP_DIR'] + logo)
        movie = Movie(
            title=data["title"],
            url=url,  # 文件类型
            info=data['info'],
            logo=logo,  # 文件类型
            star=int(data["star"]),  # 星级需要转换int
            playnum=0,
            commentnum=0,
            tag_id=data['tag_id'],
            area=data['area'],
            release_time=data['release_time'],
            length=data['length'])
        # 保存数据库
        db.session.add(movie)
        db.session.commit()
        flash("添加电影%s成功" % movie.title, "ok")
        # 操作日志
        oplog = Oplog(admin_id=session['admin_id'],
                      ip=request.remote_addr,
                      reason="添加电影%s" % data['title'])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Ejemplo n.º 25
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        movie = Movie.query.filter_by(title=data['title']).count()
        if movie == 1:
            flash('该电影已存在!', 'err')  # 'err':表示错误信息
            return redirect(url_for('admin.movie_add'))
        # 保存上传的电影视频及封面
        file_url = secure_filename(form.url.data.filename)  # 生成上传的电影视频的文件名,并安全加密
        file_logo = secure_filename(form.logo.data.filename)  # 生成上传的电影封面的文件名,并安全加密
        if not os.path.exists(app.config['UP_DIR']):  # 没有就创建文件夹
            os.makedirs(app.config['UP_DIR'])
            # os.chmod(app.config['UP_DIR'], 'rw')  # 给文件夹可读可写的权限,这样才能保存文件呀
            os.chmod(app.config['UP_DIR'], stat.S_IRWXU)  # 给文件夹可读可写的权限,这样才能保存文件呀 'rw'
        # 修改为固定格式的文件名
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存文件
        form.url.data.save(app.config['UP_DIR'] + url)
        form.logo.data.save(app.config['UP_DIR'] + logo)
        # 添加新电影入库
        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            playnum=0,
            commentnum=0,
            tag_id=int(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length']
        )
        db.session.add(movie)
        db.session.commit()
        flash('添加新电影成功!', 'ok')  # 'ok':表示成功信息

        # 将添加电影操作保存到操作日志列表
        oplog = Oplog(
            admin_id=session['admin_id'],
            ip=request.remote_addr,
            reason='添加电影:《' + movie.title + '》'
        )
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.movie_add'))

    return render_template('admin/movie_add.html', form=form)
Ejemplo n.º 26
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    if request.method == 'GET':
        # form.title.flags.required = False
        form.url.flags.required = False
        form.logo.flags.required = False
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count == 1 and movie.title != data['title']:
            flash('片名已经存在', 'err')
            return redirect(url_for('admin.movie_edit', id=movie.id))

        if not os.path.exists(app.config['UP_DIR']):  # 创建文件夹
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], 'rw')

        if form.url.data != '':
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)  # 修改文件名
            form.url.data.save(app.config['UP_DIR'] + movie.url)

        if form.logo.data != '':
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config['UP_DIR'] + movie.logo)

        movie.star = data['star']
        movie.tag_id = data['tag_id']
        movie.info = data['info']
        movie.title = data['title']
        movie.area = data['area']
        movie.length = data['length']
        movie.release_time = data['release_time']
        db.session.add(movie)
        db.session.commit()
        flash('电影修改成功', 'ok')
        oplog = Oplog(admin_id=session['admin_id'],
                      ip=request.remote_addr,
                      reason='修改 %s 电影' % (movie.title))
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 27
0
def movie_edit(id=None):
    form = MovieForm()
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    if request.method == "GET":
        form.info.data = movie.description
        form.star.data = movie.star
        form.tag_id.data = movie.tag_id

    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()

        # 判断电影是否修改为已存在的电影
        if movie_count == 1 and movie.title != data["title"]:
            flash("片名已存在", "Error")
            return redirect(url_for("admin.movie_edit", id=movie.id))

        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")

        # 判断是否更改logo
        if form.logo.data:
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)

        movie.title = data["title"]
        movie.url = data["url"]
        movie.description = data["info"]
        movie.tag_id = data["tag_id"]
        movie.star = data["star"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]

        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功", "OK")

        # 添加操作日志
        operatelog = OperateLog(admin_id=session["admin_id"],
                                ip=request.remote_addr,
                                reason="修改电影:" + str(movie.id))

        db.session.add(operatelog)
        db.session.commit()
        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)
Ejemplo n.º 28
0
def movie_edit(id=None):
    tags = Tag.query.all()
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    if request.method == "GET":
        form.info.data = movie.info
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1 and movie.title != data["title"]:
            flash("片名已经存在!", "err")
            return redirect(url_for('admin.movie_edit', id=id))

        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")

        # 视频文件保存
        if hasattr(form.url.data, 'filename'):
            movie.url = change_filename(secure_filename(
                form.url.data.filename))
            form.url.data.save(app.config["UP_DIR"] + movie.url)

        # 封面保持
        if hasattr(form.logo.data, 'filename'):
            movie.logo = change_filename(
                secure_filename(form.logo.data.filename))
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)

        movie.star = int(data["star"])
        movie.info = data["info"]
        movie.tag_id = int(request.values.get("tag_id"))
        movie.title = data["title"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]
        db.session.add(movie)
        db.session.commit()
        flash("修改电影成功!", "ok")

        recod = "修改电影ID-%d" % (id)
        oplog_handle(recod)
        return redirect(url_for('admin.movie_list', page=1))
    return render_template("admin/movie_edit.html",
                           form=form,
                           movie=movie,
                           tags=tags)
Ejemplo n.º 29
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    # 下面的用于解决初始内容(修改前的初始内容)
    if request.method == "GET":
        form.title.data = movie.title
        form.url.data = movie.url
        form.logo.data = movie.logo
        form.area.data = movie.area
        form.length.data = movie.length
        form.releasse_time.data = movie.releasse_time
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1 and movie.title != data["title"]:
            flash("片名已经存在", 'err')
            return redirect(url_for('admin.movie_edit', id=movie.id))
            # 查看一下路径是否存在,如果不存在,则创建路劲
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        # 更改图片和视频
        if form.url.data.filename != "":
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR"] + movie.url)
        if form.logo.data.filename != "":
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)

        movie.star = data["star"]
        movie.releasse_time = data["releasse_time"]
        movie.tag_id = data["tag_id"]
        movie.info = data["info"]
        movie.title = data["title"]
        movie.area = data["area"]
        movie.length = data["length"]
        db.session.add(movie)
        db.session.commit()
        flash("修改成功", 'ok')
        return redirect(url_for('admin.movie_edit', id=movie.id))
    # 将movie传进来用于设置初始值
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 30
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data

        if Movie.query.filter_by(title=data['title']).count() == 1:
            flash('电影片名已存在', category='err')
            return redirect(url_for('admin.movie_add'))

        # 获取上传文件的名称
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        # 文件保存路径操作
        file_save_path = app.config['UP_DIR']  # 文件上传保存路径
        if not os.path.exists(file_save_path):
            os.makedirs(file_save_path)
            import stat
            os.chmod(file_save_path, stat.S_IRWXU)  # 授予可读写权限
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存文件,需要给文件的保存路径+文件名
        form.url.data.save(file_save_path + url)
        form.logo.data.save(file_save_path + logo)

        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            play_num=0,
            comment_num=0,
            tag_id=int(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length']
        )
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功', 'ok')
        oplog = Oplog(
            admin_id=session['admin_id'],
            ip=request.remote_addr,
            reason='添加电影:%s' % data['title']
        )
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Ejemplo n.º 31
0
def movie_edit(id):
    form = MovieForm()
    movie = Movie.query.get_or_404(int(id))  # 修改前的tag
    # 由于有些前段的html标签没有value属性,不是直接渲染,所以需要后台添加数据到前端
    if request.method == "GET":
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
        form.info.data = movie.info
    if form.validate_on_submit():
        data = form.data
        t = Movie.query.filter_by(title=form.title.data).count()  # 新的name在数据库中的数量
        # 传进来的title和原来的title不一样并且库里面没有刚刚传进来的title,这时候更新操作
        if t == 0:
            movie.title = data['title']
            movie.info = data['info']
            movie.star = int(data['star']),
            movie.tag_id = int(data['tag_id']),
            movie.area = data['area'],
            movie.lenth = data['lenth'],
            movie.release_time = data['release_time'],
            # 有新url提交说明有新数据要上传
            if form.url.data is not None:
                try:
                    os.remove(os.path.join(app.config['UP_MOVIE_DIR'], movie.url))
                except:
                    pass
                file_url = secure_filename(form.url.data.filename)
                url = change_upload_filename(file_url)
                movie.url = url
                form.url.data.save(os.path.join(app.config['UP_MOVIE_DIR'], url))

            # 有新logo提交说明有新数据要上传
            if form.logo.data is not None:
                try:
                    os.remove(os.path.join(app.config['UP_PIC_DIR'], movie.logo))
                except:
                    pass
                file_logo = secure_filename(form.url.data.filename)
                logo = change_upload_filename(file_logo)
                movie.logo = logo
                form.url.data.save(os.path.join(app.config['UP_PIC_DIR'], logo))

            db.session.add(movie)
            db.session.commit()
            flash("标签修改成功", "ok")
            return redirect(url_for('admin.movie_edit', id=movie.id))
        flash("标题已存在", 'err')
        return redirect(url_for('admin.movie_edit', id=movie.id))
    return render_template('admin/movie_edit.html', form=form, movie=movie)
Ejemplo n.º 32
0
def movie_edit(id=None):
    form = MovieForm()
    form.url.validators = []
    form.logo.validators = []
    movie = Movie.query.get_or_404(int(id))
    url = movie.url
    logo = movie.logo
    if request.method == "GET":
        form.info.data = movie.info
        form.tag_id.data = movie.tag_id
        form.star.data = movie.star
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        if movie_count == 1 and movie.title != data["title"]:
            flash("片名已经存在!", "err")
            return redirect(url_for('admin.movie_edit', id=id))

        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")

        if form.url.data != "":
            file_url = secure_filename(form.url.data.filename)
            movie.url = change_filename(file_url)
            form.url.data.save(app.config["UP_DIR"] + movie.url)
            if os.path.exists(app.config["UP_DIR"] + url):
                os.remove(app.config["UP_DIR"] + url)

        if form.logo.data != "":
            file_logo = secure_filename(form.logo.data.filename)
            movie.logo = change_filename(file_logo)
            form.logo.data.save(app.config["UP_DIR"] + movie.logo)
            if os.path.exists(app.config["UP_DIR"] + logo):
                os.remove(app.config["UP_DIR"] + logo)

        movie.star = data["star"]
        movie.tag_id = data["tag_id"]
        movie.info = data["info"]
        movie.title = data["title"]
        movie.area = data["area"]
        movie.length = data["length"]
        movie.release_time = data["release_time"]
        db.session.add(movie)
        db.session.commit()
        flash("电影修改成功!", "ok")
        return redirect(url_for("admin.movie_edit", id=movie.id))
    return render_template("admin/movie_edit.html", form=form, movie=movie)