zoukankan      html  css  js  c++  java
  • 【Django】ESRTful APi

    如何利用rest framework搭建Django API框架!   环境:win10 python3.6

    思路步骤:

    1. 创建一个可以序列化的类
    2. 去数据库取数据交给序列化的类处理
    3. 把序列化的数据返回前端

    操作流程:

    # 安装模块
    pip install djangorestframework

    # settings.py配置

    1. apps中注册

    INSTALLED_APPS = [
        '...',
        'rest_framework',
    ]

    2.末尾添加以下代码,访问权限

    REST_FRAMEWORK = {
    	# Use Django's standard `django.contrib.auth` permissions,
    	# or allow read-only access for unauthenticated users.
    	'DEFAULT_PERMISSION_CLASSES': [
    		'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    	]
    }
    

    # app目录下创建rest_serializer.py文件,用来写处理序列化的类

    # models.py中有个User类,类下有'username', 'password'字段
    from crm import models
    from rest_framework import serializers
     
    class UserSerializer(serializers.HyperlinkedModelSerializer):
        # 序列化哪个类以及其类下的字段
        class Meta:
            model = models.User  # 序列化models中User类
            fields = ( 'username', 'password',)  # 序列化字段,此处无外键,有外键的话需要另写对应的序列化类

    # app目录下创建rest_views.py文件,从数据库获取数据并交给序列化类处理

    from rest_framework import viewsets
    from crm.rest_serializer import UserSerializer
    from crm import models
    
    class UserViewSet(viewsets.ModelViewSet):
        queryset = models.User.objects.all()  # 取User表所有数据,变量名queryset固定
        serializer_class = UserSerializer	# 给UserSerializer类序列化,变量名serializer_class固定

    # app目录urls.py文件,引入url,此处为二级分发,记得总url需要分发,url(r'^crm/', include('crm.urls')),

    from django.conf.urls import url,include
    from rest_framework import routers
    from crm.rest_views import UserViewSet 
    
    router = routers.DefaultRouter()		# 实例
    router.register(r'users', UserViewSet)	# 注册
     
    urlpatterns = [
        url(r'^api/', include(router.urls)),
    ]
    

     运行即可!

    更多资料请戳:https://www.django-rest-framework.org/

  • 相关阅读:
    windows上docker部署springboot多实例
    oracle 如何搜索当前用户下所有表里含某个值的字段?
    VS2010/OpenGL配置
    (译)Minimal Shader(最小的着色器)
    (译)Cg Programming/Unity(Cg编程/Unity)
    (转)在Unity3D中控制动画播放
    Unity3d中使用assetbundle
    C# 操作 sqlite
    Unity3d网格合并
    在Unity3d中解析Lua脚本的方法
  • 原文地址:https://www.cnblogs.com/dalyday/p/9988926.html
Copyright © 2011-2022 走看看