1. 程式人生 > >Django rest framework 第一章

Django rest framework 第一章

查找 self. url initial context 列表生成式 -- 沒有 第一章

面向對象的補充:
面向對象的繼承機制,子類中調用的方法如果子類裏面沒有,則向父類裏面找,還沒有則繼續向上找
所有的self.function都是從自己的類中開始查找的



cbv流程:url-->views-->dispatch

drf源碼流程
當請求進來之後:
1.根據上面的流程我們先執行url-->views-->dispatch
2.在dispatch中 request = self.initialize_request(request, *args, **kwargs)
是對原生request進行了封裝,

3.查看initialize_request
此時原生request被封裝成了如下格式
return Request(
request,
parsers=self.get_parsers(),
authenticators=self.get_authenticators(), #用戶認證
negotiator=self.get_content_negotiator(),
parser_context=parser_context
)
此時authenticators=self.get_authenticators()返回的是[auth() for auth in self.authentication_classes]#列表生成式
這個格式是實例化列表中的對象

4.繼續往下是dispatch中的self.initial(request, *args, **kwargs)方法
其中調用了self.perform_authentication(request)方法
self.perform_authentication(request)中調用了user方法
在user方法中:_authenticate()
or authenticator in self.authenticators:
try:
user_auth_tuple = authenticator.authenticate(self)#在這裏進行了用戶認證


111




Django rest framework 第一章