首页 > 其他 > 详细

setting

时间:2019-10-30 20:38:18      阅读:94      评论:0      收藏:0      [点我收藏+]

 

admin

登陆功能,所以我们使用django内置admin站点并创建一个管理员.

python manage.py createsuperuser

创建管理员以后,访问admin站点,先修改站点的语言配置

setting

LANGUAGE_CODE = zh-Hans
TIME_ZONE = Asia/Shanghai
USE_I18N = True
USE_L10N = True
USE_TZ = True

 

认证Authentication

可以在配置文件settings.py,中配置全局默认的认证方案

写入

REST_FRAMEWORK = {
    DEFAULT_AUTHENTICATION_CLASSES: (
        rest_framework.authentication.SessionAuthentication,  # session认证
        rest_framework.authentication.BasicAuthentication,   # 基本认证
    )
}

也可以在每个视图中通过设置authentication_classess属性来设置

from rest_framework.authentication import SessionAuthentication, BasicAuthentication
from rest_framework.views import APIView

class ExampleView(APIView):
    # 类属性
    authentication_classes = [SessionAuthentication, BasicAuthentication]
    ...

认证失败会有两种可能的返回值:

  • 401 Unauthorized 未认证

  • 403 Permission Denied 权限被禁止

 

权限Permissions

权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。

  • 在执行视图的dispatch()方法前,会先进行视图访问权限的判断

  • 在通过get_object()获取具体对象时,会进行模型对象访问权限的判断

 

全局配置


权限
全局,针对整个站点的所有视图进行权限的判断 
针对内部系统,往往才会使用到全局的权限判断,这时候,针对允许游客都可以访问的页面,针对外部系统,大部分页面都是允许游客访问的,就不要进行全局配置了

可以在配置文件中全局设置默认的权限管理类,如

settings

REST_FRAMEWORK = {
    ....
    
    DEFAULT_PERMISSION_CLASSES: (
        rest_framework.permissions.IsAuthenticated,
    )
}

如果未指明,则采用如下默认配置

DEFAULT_PERMISSION_CLASSES: (
   rest_framework.permissions.AllowAny,
)

局部配置

也可以在具体的视图中通过permission_classes属性来设置,如

from rest_framework.permissions import IsAuthenticated
from rest_framework.views import APIView

class ExampleView(APIView):
    permission_classes = (IsAuthenticated,)
    ...
(IsAuthenticated,)是元组,也可用列表

提供的权限

  • AllowAny 允许所有用户

  • IsAuthenticated 仅通过认证的用户

  • IsAdminUser 仅管理员用户

  • IsAuthenticatedOrReadOnly 已经登陆认证的用户可以对数据进行增删改操作,没有登陆认证的游客只能查看数据。

 

setting

原文:https://www.cnblogs.com/Pythonzrq/p/11767302.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!