Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建RESTAPI Django_Python_Django_Django Rest Framework_Django Rest Auth - Fatal编程技术网

Python 创建RESTAPI Django

Python 创建RESTAPI Django,python,django,django-rest-framework,django-rest-auth,Python,Django,Django Rest Framework,Django Rest Auth,我想说的第一件事是,我以前没有使用python和任何与python相关的框架的经验。然而,我有编程经验 因此,我想使用python和框架django和djangorestframework创建一个RESTAPI。我已经设法创建了数据库(使用postgresql),还设法创建了初始迁移。然而,我相信这是最简单的部分,我对我即将实施的事情有一些疑问: 首先,我想创建一个身份验证系统。我看到,djangorestframework能够自行管理身份验证,但我无法使其运行。你能给我介绍一些好的教程/提供代

我想说的第一件事是,我以前没有使用python和任何与python相关的框架的经验。然而,我有编程经验

因此,我想使用python和框架
django
djangorestframework
创建一个RESTAPI。我已经设法创建了数据库(使用postgresql),还设法创建了初始迁移。然而,我相信这是最简单的部分,我对我即将实施的事情有一些疑问:

  • 首先,我想创建一个身份验证系统。我看到,
    djangorestframework
    能够自行管理身份验证,但我无法使其运行。你能给我介绍一些好的教程/提供代码示例并简要解释一下吗
  • 在初始迁移之后,我看到
    django
    自己创建了一些用于身份验证和会话管理的表(auth_用户、auth_用户组等)。有没有什么方法可以让用户使用我自己的模型?此外,我相信我不需要django提供的所有功能(例如auth_user_group)。有没有办法去除那些不需要的功能
  • 我能够创建一个API端点(通过遵循教程)来返回一些数据(基于我创建的模型、序列化程序和视图)。然而,由于我想创建更多的API端点,我还必须为我的每个模型创建一个序列化程序和视图(这可能需要一段时间)。有没有办法创建一个泛型序列化程序和一个泛型视图方法,这样我就不需要编写一个特定的序列化程序和一个视图方法(例如,我想通过/api/books/book/:id获取模型,其中book只是任何模型的一个占位符)
  • 另外,如果这篇文章缺少任何信息,请在评论中告诉我,我将编辑这篇文章。

    好的,让我们看看:

  • 文档是你最好的朋友。这在Django的案例中尤其如此,Django有着巨大的潜力。通常,Django中有三种使用身份验证的方法:

    • 默认的用户类(
      django.contrib.auth.User.models
      )是现成的

    • 您可以通过创建其他模型(如配置文件)并通过
      OneToOneField
      链接来扩展它

    • 或者,您可以通过子类化(通常是AbstractBaseUser)并在Django的设置中注册来提供自己的用户类

    • 最后,您可以编写完全定制的后端

    有关自定义指南,请参阅此

  • 问题的第一部分见上文第段。关于删除用户组:这可能(尽管我从未尝试过),但我看不出有什么意义。它几乎没有任何开销,同时为Django的管理面板提供了一些有用的东西,如人员/管理组

  • 绝对有一个通用的解决方案。只需使用通用API视图。我再次链接。简而言之,您希望使用
    GenericAPIView
    类的子类。 例如,假设要在
    /users/
    路径下列出用户对象:

    url(r'^/users/', ListCreateAPIView.as_view(queryset=User.objects.all(), serializer_class=UserSerializer), name='user-list')
    
    对于您的特定示例,您可以使用
    retrieveapieview
    。如果你想用
    pk
    查找它,你甚至不需要配置它