- 给管理员赋予角色,这里使用到关联查询和if判断超管
class AdminForm(FlaskForm):
"""管理员管理"""
name = StringField(
label='管理员名称',
validators=[
DataRequired("请输入管理员名称!")
],
description="管理员",
render_kw={
"class": "form-control",
"placeholder": "请输入管理员名称!"
}
)
pwd = PasswordField(
label="管理员密码",
validators=[
DataRequired("请设置管理员密码")
],
description="管理员密码",
render_kw={
"class": "form-control",
"placeholder": "请输入管理员密码"
}
)
repwd = PasswordField(
label="重复管理员密码",
validators=[
DataRequired("请重复管理员密码"),
EqualTo('pwd', message="两次密码不一致!")
],
description="重复管理员密码",
render_kw={
"class": "form-control",
"placeholder": "请重复管理员密码"
}
)
role_id = SelectField(
label="角色列表",
validators=[
DataRequired("请选择角色")
],
choices=[(v.id, v.name) for v in roles],
description="角色列表",
render_kw={
"class": "form-control",
}
)
is_super = SelectField(
label="是否为超级管理员",
validators=[
DataRequired("0:是 1:不是")
],
description="是否设置为超级管理员",
coerce=int,
choices=[v for v in (0,1)],
render_kw={
"class": "form-control",
"id": "input_is_super_id"
}
)
submit = SubmitField(
label="编辑",
render_kw={
"class": "btn btn-primary"
}
)
@admin.route('/admin/list/', methods=["GET"])
@admin_login
def admin_list(page=None):
if page is None:
page = 1
page_data = Admin.query.join(
Role
).filter(
Role.id == Admin.role_id
).order_by(
Admin.addtime.desc()
).paginate(page=page, per_page=3)
return render_template('admin/adminlist.html', page_data=page_data)
Original: https://blog.csdn.net/Roy_Allen/article/details/121666424
Author: Roy_Allen
Title: flask视频网站(权限控制)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/746297/
转载文章受原作者版权保护。转载请注明原作者出处!