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"]), play_nums=0, comment_nums=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)
def admin_add(): form = AdminForm() if form.validate_on_submit(): data = form.data NewAdmin = Admin.query.filter_by(name=data["name"]).count() if NewAdmin == 1: flash("Admin name exit", "error") return redirect(url_for("admin.admin_add")) if data["pwd"] != data["r_pwd"]: flash("pass word not same", "error") return redirect(url_for("admin.admin_add")) else: from werkzeug.security import generate_password_hash NewAdmin = Admin(name=data["name"], pwd=generate_password_hash(data["pwd"]), role_id=data["role_id"], is_super=0) db.session.add(NewAdmin) db.session.commit() flash("admin add success", "ok") oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="add role " + NewAdmin.name) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.admin_add")) return render_template("admin/admin_add.html", form=form)
def preview_add(): form = PreviewForm() if form.validate_on_submit(): data = form.data # 如果已有该预告则不添加 if Preview.query.filter_by(title=data['title']).first(): flash("预告已经存在,请不要重复添加", "err") else: with db.auto_commit(): 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") logo = change_filename(file_logo) form.logo.data.save(app.config["UP_DIR"]+logo) new_preview = Preview( title=data['title'], logo=logo ) db.session.add(new_preview) # 记录添加预告操作 new_adminlog = OpLog( admin_id=session['id'], ip=session['login_ip'], reason="添加预告: "+new_preview.title) db.session.add(new_adminlog) return redirect(url_for("admin.preview_add")) return render_template("admin/preview_add.html", form=form)
def auth_edit(id=None): # TODO: 修改添加时间为修改时间 auth = Auth.query.get_or_404(int(id)) form = AuthForm() if form.validate_on_submit(): data = form.data # TODO: 在前端判断数据是否发生了修改, 发生修改了再提交到服务器处理, 减轻服务器压力 if data["name"] == auth.name and data["url"] == auth.url: flash("权限信息不作修改就不要点点点了嘛!", "err") return redirect(url_for("admin.auth_edit", id=id)) if ( data["name"] != auth.name and Auth.query.filter_by(name=data["name"]).count() == 1 ): flash('权限"{0}"已经存在!'.format(data["name"]), "err") return redirect(url_for("admin.auth_edit", id=id)) oplog = OpLog( admin_id=session["admin_id"], ip=request.remote_addr, reason='修改权限"{0}"的信息'.format(auth.name), ) auth.name = data["name"] auth.url = data["url"] db.session.add(auth) db.session.add(oplog) db.session.commit() flash("权限信息已修改!", "ok") return redirect(url_for("admin.auth_edit", id=id)) return render_template("admin/auth_edit.html", form=form, auth=auth)
def tag_edit(id=None): # TODO: 修改添加时间为修改时间 tag = Tag.query.get_or_404(int(id)) form = TagForm() if form.validate_on_submit(): data = form.data # TODO: 在前端判断数据是否发生了修改, 发生修改了再提交到服务器处理, 减轻服务器压力 if data["name"] == tag.name: flash('标签"{0}"未发生修改!'.format(data["name"]), "err") return redirect(url_for("admin.tag_edit", id=id)) if Tag.query.filter_by(name=data["name"]).count() == 1: flash('标签"{0}"已经存在!'.format(data["name"]), "err") return redirect(url_for("admin.tag_edit", id=id)) flash('标签"{0}"已经被修改为"{1}"!'.format(tag.name, data["name"]), "ok") oplog = OpLog( admin_id=session["admin_id"], ip=request.remote_addr, reason='修改标签"{0}"为"{1}"'.format(tag.name, data["name"]), ) tag.name = data["name"] db.session.add(tag) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.tag_edit", id=id)) return render_template("admin/tag_edit.html", form=form, tag=tag)
def preview_edit(id=None): form = PreviewForm() form.logo.validators = [] preview = Preview.query.get_or_404(int(id)) if request.method == "GET": form.title.data = preview.title if form.validate_on_submit(): data = form.data if form.logo.data.filename != "": file_logo = secure_filename(form.logo.data.filename) preview.logo = change_filename(file_logo) form.logo.data.save(app.config["UP_DIR"] + preview.logo) preview.title = data["title"] db.session.add(preview) 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.preview_edit", id=id)) return render_template("admin/preview_edit.html", form=form, preview=preview)
def previewAdd(): form = PreViewForm() if form.validate_on_submit(): data = form.data # 获取到封面文件 file_logo = form.logo.data.filename # 判断文件夹是否存在 if not os.path.exists(app.config['UP_DIR']): # 如果不存在就创建 os.mkdir(app.config['UP_DIR']) # 对封面文件进行重名了 logo = change_filename(file_logo) # 保存封面文件 form.logo.data.save(app.config['UP_DIR'] + logo) preview = PreView(title=data.get('title'), logo=logo) db.session.add(preview) db.session.commit() flash("预告片添加成功") oplog = OpLog( admin_id=session.get("admin_id"), ip=request.remote_addr, reason="添加预告片:{preview}".format(preview=data.get('title'))) db.session.add(oplog) db.session.commit() return render_template("admin/preview_add.html", form=form)
def admin_add(): form = AdminForm() if form.validate_on_submit(): data = form.data if Admin.query.filter_by(name=data["name"]).count() == 1: flash('管理员"{0}"已经存在!'.format(data["name"]), "err") return redirect(url_for("admin.admin_add")) from werkzeug.security import generate_password_hash admin = Admin( name=data["name"], pwd=generate_password_hash(data["pwd"]), is_super=1, role_id=data["role_id"], ) db.session.add(admin) oplog = OpLog( admin_id=session["admin_id"], ip=request.remote_addr, reason='添加管理员"{0}"'.format(data["name"]), ) db.session.add(oplog) db.session.commit() flash('管理员"{0}"添加成功!'.format(data["name"]), "ok") return redirect(url_for("admin.admin_add")) return render_template("admin/admin_add.html", form=form)
def role_edit(id=None): form = RoleForm() role = Role.query.get_or_404(int(id)) if request.method == "GET": form.auths.data = list(map(int, role.auths.split(","))) if form.validate_on_submit(): data = form.data if data["name"] == role.name and data["auths"] == list( map(int, role.auths.split(",")) ): flash("老板,您未作修改哟~", "err") return redirect(url_for("admin.role_edit", id=id)) role.name = data["name"] role.auths = ",".join(map(str, data["auths"])) db.session.add(role) oplog = OpLog( admin_id=session["admin_id"], ip=request.remote_addr, reason='修改角色"{0}"的信息'.format(data["name"]), ) db.session.add(oplog) db.session.commit() flash("角色信息修改成功!", "ok") return redirect(url_for("admin.role_edit", id=id)) return render_template("admin/role_edit.html", form=form, role=role)
def preview_edit(id=None): form = PreviewForm() if form.validate_on_submit(): data = form.data preview = Preview.query.filter_by(id=id).first() with db.auto_commit(): # 修改logo名 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") logo = change_filename(file_logo) # 保存logo图片 form.logo.data.save(app.config["UP_DIR"]+logo) preview.title=data['title'], preview.logo=logo db.session.add(preview) # 记录编辑预告操作 new_adminlog = OpLog( admin_id=session['id'], ip=session['login_ip'], reason="编辑预告: "+data['title']) db.session.add(new_adminlog) return redirect(url_for("admin.preview_add")) return render_template("admin/preview_add.html", form=form)
def preview_add(): form = PreviewForm() if form.validate_on_submit(): data = form.data preview_count = Preview.query.filter_by(title=data["title"]).count() if preview_count >= 1: flash('预告片"{0}"已经存在!'.format(data["title"]), "err") return redirect(url_for("admin.preview_add")) 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"], stat.S_IRWXU) logo = change_filename(file_logo) form.logo.data.save(app.config["UP_DIR"] + logo) preview = Preview(title=data["title"], logo=logo) db.session.add(preview) oplog = OpLog( admin_id=session["admin_id"], ip=request.remote_addr, reason='添加电影预告"{0}"'.format(data["title"]), ) db.session.add(oplog) db.session.commit() flash('电影预告"{0}"添加成功!'.format(preview.title), "ok") return redirect(url_for("admin.preview_add")) return render_template("admin/preview_add.html", form=form)
def tag_add(): form = TagForm() if form.validate_on_submit(): data = form.data tag = Tag.query.filter_by(name=data["name"]).count() if tag == 1: flash("名称已经存在", "err") return redirect(url_for("admin.tag_add")) tag = Tag( name=data["name"] ) # 添加标签 db.session.add(tag) db.session.commit() flash("添加标签成功", "ok") # 将操作加入到管理员的操作日志中 oplog = OpLog( admin_id=session["admin_id"], # 获取管理员登录ip ip=request.remote_addr, reason="添加标签:%s" % data["name"] ) db.session.add(oplog) db.session.commit() redirect(url_for("admin.tag_add")) return render_template("admin/tag_add.html", form=form)
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'], releasetime=data["release_time"], length=data['length']) db.session.add(movie) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="add movie " + movie.title) db.session.add(oplog) db.session.commit() flash("movie add success", "ok") return redirect(url_for('admin.movie_add')) return render_template("admin/movie_add.html", form=form)
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)
def movie_delete(id=None): movie_del = Movie.query.filter_by(id=id).first_or_404() db.session.delete(movie_del) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="delete movie " + movie_del.title) db.session.add(oplog) db.session.commit() flash("Movie delete", "ok") return redirect(url_for("admin.movie_list", page=1))
def comment_delete(id=None): comment = Comment.query.get_or_404(id) db.session.delete(comment) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="delete comment " + comment.content) db.session.add(oplog) db.session.commit() flash("delete success", 'ok') return redirect(url_for("admin.comment_list", page=1))
def tag_delete(id=None): tag_del = Tag.query.filter_by(id=id).first_or_404() db.session.delete(tag_del) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="delete tag " + tag_del.name) db.session.add(oplog) db.session.commit() flash("tag delete", "ok") return redirect(url_for("admin.tag_list", page=1))
def auth_del(id=None): auth = Auth.query.filter_by(id=id).first_or_404() db.session.delete(auth) db.session.commit() flash("删除权限成功!", "ok") oplog = OpLog(admin_id=session["admin_id"], ip=request.remote_addr, reason="删除权限:%s" % auth.name) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.auth_list", page=1))
def role_del(id=None): role = Role.query.get_or_404(int(id)) db.session.delete(role) db.session.commit() flash("删除角色成功!", "ok") oplog = OpLog(admin_id=session["admin_id"], ip=request.remote_addr, reason="删除角色:%s" % role.name) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.role_list", page=1))
def comment_del(id=None): comment = Comment.query.get_or_404(int(id)) db.session.delete(comment) db.session.commit() flash("删除评论成功!", "ok") oplog = OpLog(admin_id=session["admin_id"], ip=request.remote_addr, reason="删除评论:%s" % comment.content) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.comment_list", page=1))
def user_del(id=None): user = User.query.get_or_404(int(id)) db.session.delete(user) db.session.commit() flash("删除会员成功!", "ok") oplog = OpLog(admin_id=session["admin_id"], ip=request.remote_addr, reason="删除会员:%s" % user.name) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.user_list", page=1))
def user_delete(id=None): user = User.query.get_or_404(id) db.session.delete(user) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="delete user " + user.name) db.session.add(oplog) db.session.commit() flash("delete success", 'ok') return redirect(url_for("admin.user_list", page=1))
def admin_list_delete(id=None): admin_list = Admin.query.get_or_404(id) db.session.delete(admin_list) db.session.commit() oplog = OpLog(admin_id=session["aid"], ip=request.remote_addr, reason="delete admin_list " + admin_list.name) db.session.add(oplog) db.session.commit() flash("delete success", 'ok') return redirect(url_for("admin.admin_list", page=1))
def preview_del(id=None): preview = Preview.query.get_or_404(int(id)) db.session.delete(preview) db.session.commit() flash("删除预告成功!", "ok") oplog = OpLog(admin_id=session["admin_id"], ip=request.remote_addr, reason="删除预告:%s" % preview.title) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.preview_list", page=1))
def logout(): with db.auto_commit(): # 记录注销操作 new_adminlog = OpLog(admin_id=session['id'], ip=session['login_ip'], reason="注销") db.session.add(new_adminlog) # session.clear() session.pop("admin", None) session.pop("id", None) return redirect(url_for("admin.login"))
def role_del(id=None): role = Role.query.filter_by(id=id).first() if role: with db.auto_commit(): db.session.delete(role) # 记录删除角色操作 new_adminlog = OpLog(admin_id=session['id'], ip=session['login_ip'], reason="删除角色: " + role.name) db.session.add(new_adminlog) return redirect(url_for('admin.role_list', page=1)) return render_template("admin/role_list.html")
def user_del(id=None): user = Users.query.filter_by(id=id).first() if user: with db.auto_commit(): db.session.delete(user) # 记录删除会员操作 new_adminlog = OpLog( admin_id=session['id'], ip=session['login_ip'], reason="删除会员: "+user.nickname) db.session.add(new_adminlog) return redirect(url_for("admin.user_list", page=1))
def tagDel(id=None): if id is not None: tag = Tag.query.filter_by(id=id).first_or_404() db.session.delete(tag) db.session.commit() flash("删除成功") oplog = OpLog(admin_id=session.get("admin_id"), ip=request.remote_addr, reason="删除标签:{tag}".format(tag=tag.name)) db.session.add(oplog) db.session.commit() return redirect(url_for("admin.tagList", page=1))
def userDelete(id=None): if id is not None: user = User.query.get_or_404(id) db.session.delete(user) db.session.commit() flash("删除成功") oplog = OpLog(admin_id=session.get("admin_id"), ip=request.remote_addr, reason="删除会员:{user}".format(user=user.name)) db.session.add(oplog) db.session.commit() return redirect(url_for('admin.userList', page=1))
def commentDelete(id=None): if id is not None: comment = Comment.query.get_or_404(id) db.session.delete(comment) db.session.commit() flash("删除成功") oplog = OpLog(admin_id=session.get("admin_id"), ip=request.remote_addr, reason="删除评论:{comment}".format(comment=comment.content)) db.session.add(oplog) db.session.commit() return redirect(url_for('admin.commentList', page=1))