Django REST framework简介与基于User模型

2018-03-04  本文已影响0人  羁绊_ecb6

本文纯属个人理解仅作参考

Django REST framework 框架是基于Django框架的用户实现接口的工具集,也是Python做服务端当今最热门的框架,它最大的好处在于代码简介,拥有可视化接口,大大的减小前后端交流的歧义。REST框架内部的很多实现都是在Django的基础上进行封装和扩展,所以需要一定的Django基础。

如何下载Django REST framework

pip install djangorestframework

pip install markdown     

pip install django-filter 

选择一个合适的位置新建一个Django项目

django-admin startproject project

# 进入project目录,新建应用

python manage.py startapp quickstartapp

# 进行迁移

python manage.py migrate

# 创建一个超级用户

python manage.py createsuperuser

在settings.py文件中进行注册, 注册过后的应用的模型才可以生成迁移文件并迁移。在这个例子中不需要自定义模型。所以只需要注册rest_framework即可

INSTALLED_APPS = [   

        ...

        'rest_framework',

        ...

]

在quickstartapp目录下新建一个srializers.py文件,里面输入下列内容

from django.contrib.auth.models import User

from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer):

        """

        新建User序列器,用户处理输入和输出的数据, 与Django的ModelForm类似

        对数据翻译转换以及验证的功能

        """

        class Meta:

                model = User

                fields = ('id', 'url', 'username', 'email', 'first_name', 'last_name', 'date_joined')

在视图views.py文件中添加文件如下

from rest_framework import viewsets

from django.contrib.auth.models import User

from quickstartapp.serializers import UserSerializer

class UserViewSet(viewsets.ModelViewset):

        """

        此处内容会在可视化接口页面展示

        继承基类viewsets.ModelViewSet, 会帮你创建基于User的LCRUD五类接口 

        即: List, Create, Retrieve, Update, Delete

        """

        #  确定查询范围 即查询集 变量名必须与下列变量名一直 这是内部定义的

        queryset = User.objects.all()

        # 指定使用的序列器

        serializer_class =  UserSerializer

最后就是在project/urls.py中进行配置url了, 添加以下内容

from django.conf.urls import url, include

from django.contrib import admin

from rest_framework import routers

from quickstartapp import views

router = routers.DefaultRouter()

router.register(r'users', views.UserViewSet)

urlpatterns = [

        url(r'^admin/', admin.site.urls),

        url(r'^', include(router.urls)),

        # 可视化接口的用户登录等功能,固定格式

        url(r'api-auth', include('rest_framework.urls', namespace='rest_framework')), ]

上一篇下一篇

猜你喜欢

热点阅读