flask视频网站(后台管理)

预告的添加和列表

@admin.route('/preview/add', methods=['GET', 'POST'])
@admin_login
def preview_add():

'''和电影添加一样的过程'''
form = PreviewForm()
if form.validate_on_submit():
    # 过滤
    file_logo = secure_filename(form.logo.data.filename)
    # 准备存储路径
    if not os.path.exists(app.config["UP_DIR"]):
        os.mkdir(app.config["UP_DIR"])
        os.chmod(app.config["UP_DIR"], "rw")
    # 更改文件名
    file_logo = changeFileName(file_logo)
    # 保存文件
    form.logo.data.save(app.config["UP_DIR"] + file_logo)
    data = form.data
    # 准备一条数据入库
    preview = Preview(
        title = data["title"],
        logo = file_logo    # 存名字即可
    )
    db.session.add(preview)
    db.session.commit()
    flash("添加预告成功!", "ok")
    return redirect(url_for('admin.preview_add'))
return render_template('admin/previewadd.html', form=form)

@admin.route('/preview/list/')
@admin_login
def preview_list(page=None):

if page==None:
    page = 1
page_data = Preview.query.order_by(
    Preview.addtime.desc()
).paginate(page=page, per_page=10) # 视图部分提供数据,字典形式;前台部分使用macro渲染
return render_template('admin/previewlist.html', page_data=page_data)

@admin.route('/preview/del/')
@admin_login
def preview_del(id=None):

preview = Preview.query.get_or_404(int(id))  # 如果没有直接跳到404
db.session.delete(preview)  # 评论等数据和movie关联,movie是主表,所以会连带一起删除
db.session.commit()
flash("预告删除成功!", "ok")  # 小写 ok
return redirect(url_for("admin.preview_list", page=1))  # 重定向,模板渲染有add edit 和 list

@admin.route('/preview/edit/', methods=['GET', 'POST'])
@admin_login
def preview_edit(id=None):

form = PreviewForm()
form.logo.validators = []
preview = Preview.query.get_or_404(int(id))  # 如果没有直接跳到404
if form.validate_on_submit():  # POST
    data = form.data
    m = Preview.query.filter_by(title=data['title']).count()
    if m == 1 and form.logo.data.filename == "":
        flash("预告已存在", "err")
        return [PerfectMoney下载](https://www.gendan5.com/wallet/PerfectMoney.html)redirect(url_for("admin.preview_edit", id=id))
    preview.title = data["title"]
    # 准备路径
    if not os.path.exists(app.config["UP_DIR"]):
        os.mkdir(app.config["UP_DIR"])
        os.chmod(app.config["UP_DIR"], "rw")
    if form.logo.data.filename != "":
        file_logo = secure_filename(form.logo.data.filename)
        preview.logo = changeFileName(file_logo)
        form.logo.data.save(app.config["UP_DIR"] + preview.logo)
    db.session.add(preview)  # 修改
    db.session.commit()
    flash("修改成功", "ok")
    return redirect(url_for('admin.preview_list', page=1))
return render_template("admin/previewedit.html", form=form, preview=preview)  # 渲染出原信息

你可能感兴趣的:(python)