121、Django rest framework入门使用
框架介绍
为你的django平台通过model生成对应的restfull api,并可以通过对应的http接口来进行 post 、get、put、delete等操作。本文是也并非入门级别,不会带你去了解框架自身,而是直接告诉你怎么做可以快速达到目的。
安装
pip install django-rest-framework
设置
如果你还没有django的项目,那么你得先安装django并创建一个django项目,并创建数据库表。
1.如果已有项目可以直接配setting文件 在setting.py 中添加的 rest_framework
INSTALLED_APPS =( ... 'autoplat', 'rest_framework', )
2.创建用于数据序列化的代码:
在自己的APP目录中创建autoplat/serializers.py文件
from rest_framework import serializers from autoplat.models import* classProductSerializer(serializers.HyperlinkedModelSerializer): classMeta: model =Product fields =('id','name','isenabled','descr') classProjectSerializer(serializers.HyperlinkedModelSerializer): classMeta: model =Project fields =('id','name','isenabled','descr','productid') classModuleSerializer(serializers.HyperlinkedModelSerializer): classMeta: model =Module fields =('id','name','isenabled','projectid')
3.定义Views.py
from autoplat.forms import* from rest_framework import viewsets from autoplat.serializers import classProductViewSet(viewsets.ModelViewSet): """ 定义允许查看和编辑Product API """ queryset =Product.objects.all() serializer_class =ProductSerializer classProjectViewSet(viewsets.ModelViewSet): """ 定义允许查看和编辑Project API """ queryset =Project.objects.all() serializer_class =ProjectSerializer classModuleViewSet(viewsets.ModelViewSet): """ 定义允许查看和编辑Module API """ queryset =Module.objects.all() serializer_class =ModuleSerializer
4.设置访问Urls.py
通过框架中的routers自动生成api 对应的url
from django.conf.urls import patterns, url, include from rest_framework import routers from autoplat import views router = routers.DefaultRouter() router.register(r'product', views.ProductViewSet) router.register(r'project', views.ProjectViewSet) router.register(r'module', views.ModuleViewSet) urlpatterns =[ url(r'^api/', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]
配置基本完成,启动server进行访问测试
http://127.0.0.1/api/ 出现下面类似页面则配置成功
图1首页
图2 具体接口操作