您现在的位置是: 网站首页 >Flask >Flask搭建微电影视频网站 Flask

【Flask微电影】21.基于角色访问控制-权限管理:增删查改

admin2018年11月11日 20:28 Flask | Html | Python 1334人已围观

Flask搭建微电影视频网站简介 利用Flask搭建微电影视频网站 Github地址:https://github.com/xyliurui/FlaskMovie

## 权限管理 ### 权限增加 #### 创建权限表单 ```python class AuthForm(FlaskForm): name = StringField( label='权限名称', validators=[ DataRequired('请输入权限名称!') ], description='请输入权限名称!', render_kw={ 'class': "form-control" } ) url = StringField( label='访问链接', validators=[ DataRequired('请输入访问链接!') ], description='请输入访问链接!', render_kw={ 'class': "form-control", 'placeholder': '链接地址' } ) submit = SubmitField( label='提交', render_kw={ 'class': "btn btn-primary" } ) ``` #### 修改auth_add增加权限视图 ```python @admin.route("/auth/add/", methods=['GET', 'POST']) @admin_login_require def auth_add(): form = AuthForm() if form.validate_on_submit(): data = form.data if Auth.query.filter_by(url=data['url']).count() == 1: flash('权限链接地址已存在!',category='err') return redirect(url_for('admin.auth_add')) auth = Auth( name=data['name'], url=data['url'] ) db.session.add(auth) db.session.commit() flash('权限地址添加成功!', category='ok') return render_template('admin/auth_add.html', form=form) ``` #### 修改auth_edit.html增加权限模板 ```html <form role="form" method="post"> <div class="box-body"> {% include 'admin/alert_info.html' %} <div class="form-group"> <label for="input_name">{{ form.name.label }}</label> {{ form.name }} {% for err in form.name.errors %} <div class="col-md-12" style="color: red">{{ err }}</div> {% endfor %} </div> <div class="form-group"> <label for="input_url">{{ form.url.label }}</label> {{ form.url }} {% for err in form.url.errors %} <div class="col-md-12" style="color: red">{{ err }}</div> {% endfor %} </div> </div> {{ form.csrf_token }} <div class="box-footer"> {{ form.submit }} </div> </form> ``` ![BLOG_20181111_202846_24](/media/blog/images/2018/11/BLOG_20181111_202846_24.png "博客图集BLOG_20181111_202846_24.png") ### 权限列表 #### 修改auth_list权限显示视图 ```python @admin.route("/auth/list/<int:page>/") @admin_login_require def auth_list(page=None): if not page: page = 1 page_auths = Auth.query.order_by(Auth.add_time.desc()).paginate(page=page, per_page=10) return render_template('admin/auth_list.html', page_auths=page_auths) ``` #### 修改auth_list.html权限显示模板 ```html {% include 'admin/alert_info.html' %} <table class="table table-hover"> <tbody> <tr> <th>编号</th> <th>名称</th> <th>地址</th> <th>添加时间</th> <th>操作事项</th> </tr> {% for auth in page_auths.items %} <tr> <td>{{ auth.id }}</td> <td>{{ auth.name }}</td> <td>{{ auth.url }}</td> <td>{{ auth.add_time }}</td> <td> <a class="label label-success">编辑</a> &nbsp; <a class="label label-danger">删除</a> </td> </tr> {% endfor %} </tbody> </table> {% import 'admin/pagination.html' as pg %} {{ pg.render_pagination(page_auths, 'admin.auth_list') }} ``` 修改base.html增加 ```html <a href="{{ url_for('admin.auth_list', page=1) }}"> <i class="fa fa-circle-o"></i> 权限列表 </a> ``` ### 权限删除 #### 修改auth_delete权限删除视图 ```python @admin.route("/auth/delete/<int:delete_id>/") @admin_login_require def auth_delete(delete_id=None): auth = Auth.query.get_or_404(delete_id) db.session.delete(auth) db.session.commit() flash('删除权限地址成功', category='ok') return redirect(url_for('admin.auth_list', page=1)) ``` #### 修改auth_list.html权限删除链接 ```html <a class="label label-danger" href="{{ url_for('admin.auth_delete', delete_id=auth.id) }}">删除</a> ``` ![BLOG_20181111_202856_94](/media/blog/images/2018/11/BLOG_20181111_202856_94.png "博客图集BLOG_20181111_202856_94.png") ### 权限编辑 #### 增加auth_update权限更新视图 ```python @admin.route("/auth/update/<int:update_id>/", methods=['GET', 'POST']) @admin_login_require def auth_update(update_id=None): auth = Auth.query.get_or_404(update_id) form = AuthForm( name=auth.name, url=auth.url ) if form.validate_on_submit(): data = form.data if Auth.query.filter_by(url=data['url']).count() == 1 and auth.url != data['url']: flash('权限链接地址已存在!', category='err') return redirect(url_for('admin.auth_update', update_id=update_id)) auth.name = data['name'] auth.url = data['url'] db.session.commit() flash('权限地址修改成功!', category='ok') return render_template('admin/auth_edit.html', form=form) ``` #### 修改auth_edit.html权限编辑模板 增加访问链接判断 修改auth_list.html增加编辑链接 ```html <a class="label label-success" href="{{ url_for('admin.auth_update', update_id=auth.id) }}">编辑</a> ``` 修改auth_edit.html的添加和更新判断 ```html <li class="active"> {% if request.path == url_for('admin.auth_add') %} 添加权限 {% else %} 更新权限 {% endif %} </li> <h3 class="box-title"> {% if request.path == url_for('admin.auth_add') %} 添加权限 {% else %} 更新权限 {% endif %} </h3> ``` ![BLOG_20181111_202922_94](/media/blog/images/2018/11/BLOG_20181111_202922_94.png "博客图集BLOG_20181111_202922_94.png")

很赞哦! (1)

文章交流

  • emoji
0人参与,0条评论

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2076天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:256 篇
  • 文章评论:60 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站