1.首先安裝Django-Rest-Frameworkpython
pip3 install djangorestframework pip3 install markdown Markdown爲可視化 API 提供了支持 pip3 install django-filter
2.使用pycharm建立一個工程和一個appsql
工程名:restful數據庫
app名:apidjango
數據庫默認使用sqlite3api
3.配置rest_frameworkrestful
打開settings文件 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'api', 'rest_framework' #新增 ] 添加 REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 'PAGINATE_BY': 10 }
4.同步數據庫markdown
python manage.py makemigrations python manage.py migrate
5.序列化session
在api下面建立serializers.py文件 添加 from django.contrib.auth.models import User, Group from rest_framework import serializers class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ('url', 'username', 'email', 'groups') class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group #顯示的字段 fields = ('url', 'name')
6.添加視圖app
在api的views裏添加以下代碼 from django.shortcuts import render # Create your views here. from django.contrib.auth.models import User, Group from rest_framework import viewsets from api.serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet): """ 容許查看和編輯user 的 API endpoint """ queryset = User.objects.all() serializer_class = UserSerializer class GroupViewSet(viewsets.ModelViewSet): """ 容許查看和編輯group的 API endpoint """ queryset = Group.objects.all() serializer_class = GroupSerializer
7.設置urlurl
在restful下面urls from django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), #添加 url(r'^api/', include('api.urls')), ] 在api下面建立urls 添加 from django.conf.urls import patterns, url, include from rest_framework import routers from api import views router = routers.DefaultRouter() router.register(r'users', views.UserViewSet) router.register(r'groups', views.GroupViewSet) # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browseable API. urlpatterns = [ url(r'^', include(router.urls)), #驗證登陸使用 url(r'auth',include('rest_framework.urls')) ]
8.啓動訪問