15.django之Django-Rest-Framework

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.啓動訪問



相關文章
相關標籤/搜索