Flask学习「一」(按钮,角色,菜单,用户,权限)

本文介绍了如何在Flask项目中实现权限控制,包括用户、角色、菜单和按钮的管理。详细阐述了权限设计思路,如用户角色关联、权限菜单表、用户权限表等,并提供了相关表结构。通过Flask+sqlalchemy+flask_restplus,实现了用户角色的查询、分配以及角色与菜单、按钮的关联操作。文章还展示了具体的代码实现,如Flask_RestPlus的路由注册和接口定义,以及数据库操作示例。
摘要由CSDN通过智能技术生成
5130973-c1e9e81289ccba3f.jpg
FLASK学习

很荣幸有时间能静下心来写在这篇文章,前段时间写了一些没有营养的文章对那些关注我的同学来说非常抱歉,接下来的一段日子里会围绕近期所做的Flask项目写一系列的博客,以记录自己的不足。
鉴于可能有些小白可能会看到这篇文章,于是我尽量写的通俗易懂。
接下来进入正题,我这篇文章要写的是一个系统的权限部分。权限的控制对于一个优秀的系统来说至关重要,但是对于权限的设计和把空是比较麻烦的。
一般如果我们不考虑按钮的话,逻辑大致如下:
把菜单和权限、权限用户关联起来。
1、用户页面,可以增删改查,并且还要有一个分配权限的按钮。
2、权限页面,可以增删改查,并且有一个分配用户的按钮和一个分配菜单的按钮。
3、建立两个表,分别为用户权限表(保存用户ID和权限ID)、权限菜单表(保存权限ID和菜单ID)。
4、当在用户页面中选中一个用户,点击用户的“分配权限”按钮时,打开展示所有权限的页面(并把用户ID传进去),左边展示所有还没有分配的权限列表,右边展现已经分配的权限列表,然后选择需要分配的左边权限后,点击分配,把数据分配到右边已分配的列表中,然后点击“确定”按钮,把用户ID和选择的权限ID保存到用户权限表。
5、当在权限页面选中一个权限,并点击“分配用户”时,处理方式和4相同,当选择需要分配权限的用户后,同样把用户ID和权限ID保存到用户权限表。
6、当在权限页面选中一个权限,并点击“分配菜单”时,打开一个树展现所有菜单的页面,每个树节点前面有一个复选框,并把这个权限已经分配的树默认选中,然后在要分配的菜单节点树前面的复选框上选中,最后保存数据,把权限Id和所有选中的菜单ID保存到权限菜单表。
7、当用户登陆系统的时候,首先检查用户输入的口令信息,如果口令正确,再根据用户倒查用户权限表,再通过用户权限表查到的权限,到权限菜单表查询相应的菜单,再把相应的菜单展示出来。
上面便是不考虑按钮的情况下的业务逻辑,其实加上按钮的话也是差不多的,因为按钮隶属于菜单,只有给某个用户分配了某个角色,这个用户才能在登录的时候看到他所拥有角色对应下的菜单和按钮,这样即完成了角色的权限控制。
接下来开始我们的项目。
首先根据上面的业务描述,我们大概可以用到的表和字段如下:
user表(id,name,tel,email,password) # 用户表
role表(id,name,description) # 角色表
user_role表(id,user_id,role_id) # 用户角色表
menu表(id,parent_id,lay,name,code,description) # 菜单表
action表(id,menu_id,name,code,description) # 按钮表
role_menu(id,role_id,menu_id) # 角色菜单表
role_action(id,role_id,action_id) # 角色按钮表

user_id
role_id
role_id
menu_id
role_id
action_id
menu_id
user
user_role
role
role_menu
menu
role_action
act

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值