zoukankan      html  css  js  c++  java
  • 15.django之Django-Rest-Framework

    1.首先安装Django-Rest-Framework

    pip3 install djangorestframework
    pip3 install markdown Markdown为可视化 API 提供了支持
    pip3 install django-filter
    

    2.使用pycharm创建一个工程和一个app

    工程名:restful

    app名:api

    数据库默认使用sqlite3

    3.配置rest_framework

    打开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.同步数据库

    python manage.py makemigrations
    python manage.py migrate
    

    5.序列化

    在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.添加视图

    在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.设置url

    在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.启动访问



  • 相关阅读:
    TCP和UDP的一些区别: TCP提供可靠传输的机制:
    rpc和 http的区别
    熔断原理与实现Golang版
    源码解读 Golang 的 sync.Map 实现原理
    mysql底层为啥用b 树不用红黑树_MySQL索引底层数据结构
    一条sql 查询语句是如何执行的
    网络相关知识
    为什么遍历 Go map 是无序的?
    Go语言 参数传递究竟是值传递还是引用传递的问题分析
    解决goland debug 调试问题 Version of Delve is too old for this version of Go
  • 原文地址:https://www.cnblogs.com/liu-yao/p/6058488.html
Copyright © 2011-2022 走看看