分类: Python/Ruby
2021-12-02 17:33:28
# 预告的添加和列表
@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("外汇跟单gendan5.com预告删除成功!", "ok") # 小写 ok
return redirect(url_for("admin.preview_list", page=1)) # 重定向,模板渲染有add edit 和 list
@admin.route('/preview/edit/
@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 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) # 渲染出原信息