首页>>后端>>Python->django怎么做权限管理?

django怎么做权限管理?

时间:2023-12-13 本站 点击:0

导读:很多朋友问到关于django怎么做权限管理的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

Django怎么管理权限,views怎么写,模板又怎么写,求一个简单的代码,有帮助给100分

没有python本身那么方便的语句

需要自己在循环里加判断,比如这样:

.... do somthing ....

不过我还是建议尽量在模板里少做一些事情,模板毕竟不是用来提供计算的,只是一个展示用的框架而已。

django admin实现后台多用户隔离

很多人说django自带的后台只能用来做管理,其实简单的多用户发布需求还是可以用自带的admin模块来做的。核心是使用 request.user 获取当前登录用户,然后根据用户筛选后台显示内容。

复杂的用户权限管理使用django-guardian等组件

模拟了一个根据用户每天输入的数据,生成可视化报表的项目。预想的是根据不同的报表类型,预设不同的数据模板。前端请求的时候发送报表类型和数据范围用户等信息到后端。后端返回数据后交给前端echart处理。

花了整个下午才完成基本的后台,因为目的是实现多用户,后面的部分有空再去写。

![HTZMQ)4(7BXHAD`K~F]QSLR.png]( )

创建和修改model时,会显示关联的外键的所有的值,比如显示出所有的用户来了。使用 get_form 方法隐藏外键字段(例如user), save_model 设置user默认值,也别忘了列表页的筛选 get_queryset

Django rest framework 身份和权限验证

认证成功提供以下信息

request.user 将是一个 Django User 实例。

request.auth 将是 None

a. 设置在 setting.py 的 INSTALLED_APPS 中添加 rest_framework.authtoken

b. 执行 manage.py migrate 生成 token 相关的表

如何生效请看 三

a. 修改 .authenticate(self, request) 方法完成自定义验证

该方法返回 (user, auth) 元组或 None

b. 修改 .authenticate_header(self, request)

如果实现该方法,则应返回一个字符串,该字符串将用作 HTTP 401 Unauthorize 响应中的 WWW-Authenticate 头的值

如果 .authenticate_header() 方法未被重写,则认证方案将在未验证的请求被拒绝访问时返回 HTTP 403 Forbidden 响应

示例

a. 重写 .has_permission(self, request, view)

b. 重写 .has_object_permission(self, request, view, obj)

区别:

has_permission 在请求进来的时候就开始了属于DRF的三大认证,返回 True 就能访问, False 就禁止访问

has_object_permissions 是对某个对象的访问权限,

如果请求被授予访问权限,方法应该返回True,否则返回False。

: 仅当视图级 has_permission 检查已通过时,才会调用实例级 has_object_permission 方法

基于django的域名管理系统(1)

1、初衷:公司有搭建自己的域名服务器(公司内的域名需要通过公司的域名服务器进行解析),部门内上百个域名于ip之间的解析关系不明确,没有一个平台展示域名与vip/ip,vip与ip等关系,如下图:

2,域名管理系统的功能简介:

3,前端ui页面展示:

4,功能介绍:

4.1:域名操作:

展示微博搜索团队所有域名,并可对域名进行增/删/改/查(用户权限管理)

修改的表单有验证,并且对于该域名是否是动态域名的选择,“域名”和ip,“运营商”和“机房之间进行互换”

增加域名表单有验证,并且对于该域名是否是动态域名的选择,"域名"和ip,"运营商"和"机房之间进行互换","属性"的下拉列表中"vip/ip"和"动态域名"之间进行互换

该域名是超链接,点击会展示该域名下的动态域名或vip或ip

4.2:域名反向解析/批量操作

展示从ip到域名的映射

批量删除操作:

增加删除纪录页面,支持批量全选当前页面

批量删除出现大于等于2个机房时,不能执行成功,并展示出所有数据(ip/机房/域名),展示不成功均有提示

批量删除的数据中存在域名下只有该ip一个,不能执行成功,并展示出所有此类数据(ip/机房/域名),展示不成功均有提示

批量删除操作执行成功后,解除所选择的域名与其对应ip的关系,不删除ip或域名

每次批量删除均有操作纪录(纪录中有操作时间,删除的ip和域名已经操作人)

请教Django的User/Group/Permission管理

Django的用户权限管理也是业界比较通用的RBAC(Role-Based Access Control)的权限控制模型。其实很简单:看一个用户是否有权限访问某页面(view),就看这个用户是否拥有访问这个页面所必需的角色(Role)。而一个用户的所拥有的所有的角色有两个途径获得,1、是直接赋给这个用户的角色,2、是这个用户所属的所有小组所拥有的角色,这个用户间接地就拥有了这些权限角色。

结语:以上就是首席CTO笔记为大家整理的关于django怎么做权限管理的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/30791.html