Django rest framework 使用自定义认证方式
2016-01-18 20:24
288 查看
Django rest framework 使用自定义认证方式
Django使用自定义认证方式 介绍了 “Django使用自定义认证方式”,这一篇说说怎样在前一篇的基础上提供rest api。修改settings.py中INSTALLED_APPS,添加 ‘login’ app。
给login app增加serializers.py文件
[code]#coding:utf-8 from django.contrib.auth.models import User from rest_framework import serializers class LoginSerializer(serializers.ModelSerializer): username = serializers.CharField(required=False, max_length=1024) password = serializers.CharField(required=False, max_length=1024) class Meta: model = User fields = ('id', 'username', 'password')
修改login app的views.py文件
[code]#coding:utf-8 from rest_framework import generics, viewsets, mixins, status from rest_framework.response import Response from rest_framework.views import APIView from .serializers import * class LoginViewSet(APIView): queryset = User.objects.all() serializer_class = LoginSerializer def post(self, request): try: username = request.data.get('username') password = request.data.get('password') user = User.objects.get(username__iexact=username) if user.check_password(password): print user serializer = LoginSerializer({'id': user.id, 'username': user.username}) return Response(serializer.data) return Response(status=status.HTTP_401_UNAUTHORIZED) except User.DoesNotExist: return Response(status=status.HTTP_401_UNAUTHORIZED)
给login app增加urls.py文件
[code]from django.conf.urls import url, include from rest_framework import routers from .views import * urlpatterns = [ url(r'^api/login$', LoginViewSet.as_view()), ]
修改project/urls.py文件,添加 ‘login’ app的url配置。
[code]urlpatterns = [ ... url(r'^login/', include('login.urls')), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), ... ]
测试
运行工程,然后访问 http://localhost:8000/login/api/login转载请以链接形式标明本文地址
本文地址:/article/3624637.html
相关文章推荐
- Django - “no module named django.core.management”
- 利用BAPI(BAPI_GOODSMVT_CREATE)投料消耗(261)销售订单E库存
- GOOGLE搜索從入門到精通V4.0
- $state.go 传递参数
- Windows 平台下 Go 语言的安装和环境变量设置
- Windows 平台下 Go 语言的安装和环境变量设置
- Google推荐的图片加载库Glide介绍
- 如何实现支持数亿用户的长连消息系统 | Golang高并发案例
- django静态文件配置
- goang Receiver & interface
- 执行django-admin.py时,打开编辑器的解决办法
- Algorithm--Insertion Sort
- 我要google一下
- googel软件测试之道——总结
- GO并发
- django访问静态文件
- UVA 543 Goldbach's Conjecture
- django setting设置路径
- django向view传递数据
- beego 使用例子