我想说的第一件事是我之前没有使用python和任何框架python相关的经验。但是,我有编程经验。
因此,我想使用带有框架django
和djangorestframework
的python创建REST API。我已设法创建数据库(使用postgresql),并设法创建初始迁移。但是,我认为这是最简单的部分,我对我即将实施的事情有一些疑问:
djangorestframework
它能够自己管理身份验证,但我无法让它运行。你能指导我一些好的教程/提供代码样本并简要解释一下吗?django
创建了一些用于身份验证和会话管理的表(auth_user,auth_user_groups等)。有没有办法让我自己的模型用户?此外,我相信我不会需要django提供者的所有功能(例如auth_user_groups)。有什么办法可以删除那些不需要的功能吗?P.S。如果这篇文章缺少任何信息,请在评论中告诉我,我将编辑这篇文章。
答案 0 :(得分:1)
好的,让我们看看:
文档是你最好的朋友。对于Django来说尤其如此,它具有很好的documentation。通常,在Django中有三种使用身份验证的方法:
默认用户类(django.contrib.auth.user.models
)只需开箱即用。
您可以通过创建其他模型(如个人资料)并通过OneToOneField
进行关联来扩展它。
或者,您可以通过子类化(通常是AbstractBaseUser)提供自己的User类,并在Django的设置中注册它。
最后,您可以编写完全自定义的后端。
有关自定义指南,请参阅此article。
问题的第一部分见上文。关于删除用户组:它可能是可能的(尽管我从未尝试过),但我没有看到太多意义。它实际上没有任何开销,同时为Django的管理面板提供了一些有用的东西,如人员/管理员组。
绝对有一个通用的解决方案。只需使用通用API视图即可。我再次链接documentation。简而言之,您希望使用GenericAPIView
类的子类。
例如,假设要列出/users/
路径下的用户对象:
url(r'^/users/', ListCreateAPIView.as_view(queryset=User.objects.all(), serializer_class=UserSerializer), name='user-list')
对于您的特定示例,您将使用RetrieveAPIView
。如果您想使用pk
进行查找,则甚至无需对其进行配置。