亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Django-Rest-Framework 權限管理源碼淺析(小結)

2020-02-15 23:38:55
字體:
來源:轉載
供稿:網友

在django的views中不論是用類方式還是用裝飾器方式來使用rest框架,django_rest_frame實現權限管理都需要兩個東西的配合: authentication_classespermission_classes

# 方式1: 裝飾器from rest_framework.decorators import api_view, authentication_classes, permission_classesfrom rest_framework.authentication import SessionAuthentication, BasicAuthenticationfrom rest_framework.permissions import AllowAnyfrom rest_framework.response import Response@api_view(["GET", ])@permission_classes([AllowAny,])@authentication_classes([SessionAuthentication, BasicAuthentication])def test_example(request): content = {   'user': unicode(request.user), # `django.contrib.auth.User` instance.   'auth': unicode(request.auth), # None  }  return Response(content)# ------------------------------------------------------------# 方式2: 類from rest_framework.authentication import SessionAuthentication, BasicAuthenticationfrom rest_framework.permissions import AllowAnyfrom rest_framework.response import Responsefrom rest_framework.views import APIViewclass ExampleView(APIView): authentication_classes = (SessionAuthentication, BasicAuthentication) permission_classes = (AllowAny,) def get(self, request, format=None):  content = {   'user': unicode(request.user), # `django.contrib.auth.User` instance.   'auth': unicode(request.auth), # None  }  return Response(content)

上面給出的是權限配置的默認方案,寫和不寫沒有區別。 rest框架有自己的settings文件 ,最原始的默認值都可以在里面找到:

說道rest的settings文件,要覆蓋其中的默認行為,特別是權限認證行為,我們只需要在 項目settings文件

中指定你自己的類即可:

REST_FRAMEWORK = { ... 'DEFAULT_AUTHENTICATION_CLASSES': (  'your_authentication_class_path', ), ...}

在rest的settings文件中,獲取屬性時,會優先加載項目的settings文件中的設置,如果項目中沒有的,才加載自己的默認設置:

初始化api_settings對象

api_settings = APISettings(None, DEFAULTS, IMPORT_STRINGS)

APISettings 類中獲取屬性時優先獲取項目的settings文件中 REST_FRAMEWORK 對象的值,沒有的再找自己的默認值

@propertydef user_settings(self): if not hasattr(self, '_user_settings'):  # _user_settings默認為加載項目settings文件中的REST_FRAMEWORK對象  self._user_settings = getattr(settings, 'REST_FRAMEWORK', {}) return self._user_settingsdef __getattr__(self, attr): if attr not in self.defaults:  raise AttributeError("Invalid API setting: '%s'" % attr) try:  # Check if present in user settings  # 優先加載user_settings,即項目的settings文件,沒有就用默認  val = self.user_settings[attr] except KeyError:  # Fall back to defaults  val = self.defaults[attr] # Coerce import strings into classes if attr in self.import_strings:  val = perform_import(val, attr) # Cache the result self._cached_attrs.add(attr) setattr(self, attr, val) return val            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲无线码在线一区观看| 欧美成人激情视频| 日韩欧美一区视频| 中文字幕av一区二区| 国产一区二区美女视频| 17婷婷久久www| 日韩一区二区精品视频| 日韩欧美在线视频免费观看| 91超碰caoporn97人人| 欧美极品美女视频网站在线观看免费| 青青草成人在线| 2019最新中文字幕| 庆余年2免费日韩剧观看大牛| 欧美激情亚洲自拍| 国产精品va在线播放我和闺蜜| 亚洲精品成a人在线观看| 狠狠操狠狠色综合网| 亚洲欧美日韩一区二区在线| 亚洲国产欧美自拍| 亚洲精品国精品久久99热一| 日韩精品一二三四区| 亚洲在线一区二区| 欧美激情在线狂野欧美精品| 韩国欧美亚洲国产| 91av免费观看91av精品在线| 国产精品视频不卡| 精品国产欧美一区二区三区成人| 亚洲天堂精品在线| 久久伊人免费视频| 中文字幕综合在线| 91精品美女在线| 久久91亚洲人成电影网站| 色婷婷综合成人av| 91精品国产综合久久男男| 亚洲天天在线日亚洲洲精| 国产亚洲精品高潮| 色综合五月天导航| 亚洲欧美中文日韩在线| 国产日韩精品在线播放| 97视频网站入口| 欧美老妇交乱视频| 日韩精品一区二区视频| 亚洲自拍偷拍福利| 欧美成人一区在线| 欧美疯狂xxxx大交乱88av| 欧美午夜激情视频| 在线成人免费网站| 日韩精品中文在线观看| 亚洲人成网站免费播放| 91影院在线免费观看视频| 欧日韩不卡在线视频| 日韩精品视频在线| 久久男人av资源网站| 精品电影在线观看| 国产在线高清精品| 欧美大片免费看| 亚洲激情电影中文字幕| 欧美又大粗又爽又黄大片视频| 国产自产女人91一区在线观看| 欧美成人黄色小视频| 欧美视频中文字幕在线| 中文字幕亚洲欧美日韩在线不卡| 色婷婷综合久久久久中文字幕1| 欧美日韩亚洲网| 欧美日韩一区二区免费在线观看| 精品一区二区三区电影| 日韩福利在线播放| 精品亚洲国产成av人片传媒| 亚洲自拍偷拍一区| 欧美精品激情在线| 国产精品专区h在线观看| 亚洲成年人影院在线| 亚洲一区第一页| 大荫蒂欧美视频另类xxxx| 97香蕉久久夜色精品国产| 欧美日韩一区二区在线播放| 国产精品日日做人人爱| 亚洲国产精品大全| 秋霞成人午夜鲁丝一区二区三区| 欧美大片va欧美在线播放| 亚洲色在线视频| 精品视频9999| 在线观看91久久久久久| 成人xxxx视频| 亚洲精品综合精品自拍| 91极品视频在线| 日韩中文在线中文网三级| 国产精品精品国产| 久久久久久69| 51色欧美片视频在线观看| 亚洲国产黄色片| 日产日韩在线亚洲欧美| 日本19禁啪啪免费观看www| 中文字幕精品一区久久久久| 亚洲一区www| 日韩在线精品一区| 欧洲中文字幕国产精品| 国产精品成人av性教育| 亚洲精品乱码久久久久久金桔影视| 国产激情综合五月久久| 日本在线观看天堂男亚洲| 久久躁狠狠躁夜夜爽| 美日韩精品视频免费看| 久久精品视频播放| 国产成人av在线播放| 久久久av免费| 亚洲国产精品久久久久久| 在线播放精品一区二区三区| 日韩av一区二区在线观看| 久久免费视频网| 亚洲欧美中文日韩在线v日本| 精品视频9999| 中文字幕亚洲欧美在线| 久久久成人精品视频| 欧美性生交xxxxxdddd| 中文字幕av一区二区三区谷原希美| 国产精品免费一区| 国外成人免费在线播放| 国产精品专区第二| 亚洲成人久久久| 欧美又大粗又爽又黄大片视频| 91天堂在线观看| 亚洲欧美国产精品久久久久久久| 欧美成人一区二区三区电影| 欧美激情亚洲激情| 久久精品青青大伊人av| 亚洲三级av在线| 亚洲第一综合天堂另类专| 久久在线精品视频| 精品国产视频在线| 最近2019年中文视频免费在线观看| 蜜臀久久99精品久久久久久宅男| 色综合伊人色综合网| 国产精品美女无圣光视频| 久久久久久国产精品美女| 性色av一区二区三区| 亚洲男人天堂九九视频| 日韩免费在线免费观看| 国产美女精品免费电影| 久久人人爽人人爽人人片av高请| 日韩精品在线视频| 欧美麻豆久久久久久中文| 亚洲成人激情在线| 日韩欧美在线免费| 国产激情视频一区| 97**国产露脸精品国产| 精品福利在线视频| 浅井舞香一区二区| 国产成人一区二区三区小说| 亚洲国产天堂久久综合| 成人黄色免费片| 久久999免费视频| 中文字幕亚洲无线码在线一区| 亚洲一区二区福利| 日韩欧美国产中文字幕| 精品在线小视频| 97久久精品视频| 午夜精品99久久免费| 精品久久国产精品| 国产91网红主播在线观看| 欧美激情久久久| 亚洲伊人一本大道中文字幕| 一区国产精品视频| 国产精品∨欧美精品v日韩精品|