如何将函数基础 api 视图转换为 class 基础 api 视图?
how to convert function base api views into class base api views?
在我的项目中,我有以下4个APIs (function base API view)
save_user()
login_user()
get_user_info()
update_user()
我想把它转换成class基础API视图
class UserApi(APIView):
def post():
#save user
def get():
#for get user info
def put():
#for update user info
那么如何在 class 基本视图中使用 login()。
或者使用函数库视图进行登录?
在单个 views.py 文件中混合使用基于 class 的 API 视图和基于功能的 API 视图是好是坏?
要登录,用户必须提供用户名和密码。这将是一个 HTTP post 请求。您可以仅为 post 创建一个 class-based 视图以供登录并定义 URL 端点。
class Login(APIView):
def post(self, request, format=None):
# authentication related code
urlpatterns = [
path('login/', Login.as_view()),
]
使用class-based 视图的主要优点是分离HTTP 方法(get、post、put、delete)和编写re-usable 代码。 DRF 提供了通用的 class-based 视图,可以用更少的代码实现通用功能。
对于登录功能,如果您拥有基于令牌的身份验证,那么拥有 class-based 视图会很有用。因为,你没有提到它,我想说 login
和 user
的视图都有 class-based 将有利于一致性和可读性。没有规定不能混合 class-based 和 function-based 视图;这取决于你想要达到的目标,一个不一定比另一个好或坏。
在我的项目中,我有以下4个APIs (function base API view)
save_user()
login_user()
get_user_info()
update_user()
我想把它转换成class基础API视图
class UserApi(APIView):
def post():
#save user
def get():
#for get user info
def put():
#for update user info
那么如何在 class 基本视图中使用 login()。 或者使用函数库视图进行登录?
在单个 views.py 文件中混合使用基于 class 的 API 视图和基于功能的 API 视图是好是坏?
要登录,用户必须提供用户名和密码。这将是一个 HTTP post 请求。您可以仅为 post 创建一个 class-based 视图以供登录并定义 URL 端点。
class Login(APIView):
def post(self, request, format=None):
# authentication related code
urlpatterns = [
path('login/', Login.as_view()),
]
使用class-based 视图的主要优点是分离HTTP 方法(get、post、put、delete)和编写re-usable 代码。 DRF 提供了通用的 class-based 视图,可以用更少的代码实现通用功能。
对于登录功能,如果您拥有基于令牌的身份验证,那么拥有 class-based 视图会很有用。因为,你没有提到它,我想说 login
和 user
的视图都有 class-based 将有利于一致性和可读性。没有规定不能混合 class-based 和 function-based 视图;这取决于你想要达到的目标,一个不一定比另一个好或坏。