Django Web应用程序处理发布请求

时间:2019-12-15 18:09:21

标签: python django django-rest-framework django-views

我是Django的新手,对处理服务器上的发布请求感到困惑。我想接受以下json格式的发布请求:public LiveData<List<ListEntity>> getLists() { return repository.getLists(listNumber, searchText); } ,并使用以下json格式的回复进行回复:

{“username”:”john@doe.com”,”password”:”pass@word1”}(如果找到用户名和密码组合) {“status”:”success”,”message”:”user_authed”},如果找不到用户名和密码组合

这是我的views.py代码

{“status”:”failure”,”message”:”user_not_found”}

我想知道如何格式化发布功能以接受上述格式的请求,以及如何将回复自定义为已认证。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您要完成的工作称为身份验证。 请提前阅读https://www.django-rest-framework.org/api-guide/authentication/

然后根据您所学的内容编辑问题。

希望很快能收到您的来信!

#serializers.py
from rest_framework import serializers
UserRequestSerializer(serializers.Serializer)
    username = CharField(required=True, max_length=128)
    password = CharField(required=True, max_length=128)

#views.py
from .serializers import *

UserCheckView(APIView):

    def post(request, *args, **kwargs):
        serializer = UserRequestSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        try:
            user = User.objects.get(username=serializer.validated_data['username'])
            if user.check_password(serializer.validated_data['password']:
                return Response(data={“status”:”success”,”message”:”user_authed”},status=status.HTTP_200_OK)
            return Response(data={“status”:”failure”,”message”:”password_did_not_match”}, status=status.HTTP_400_BAD_REQUEST)
        except User.DoesNotExist:
            return Response(data={“status”:”failure”,”message”:”user_not_found”}, status=status.HTTP_404_NOT_FOUND)