Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1648648
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友

分类: Python/Ruby

2017-03-15 14:46:31

      django使用rest_framework 实现web的api接口。
     安装pip install djangorestframework
     在settings配置文件中设置,加入app和权限设置
    

点击(此处)折叠或打开

  1. INSTALLED_APPS = [

  2.     'django.contrib.admin',
  3.     'django.contrib.auth',
  4.     'django.contrib.contenttypes',
  5.     'django.contrib.sessions',
  6.     'django.contrib.messages',
  7.     'django.contrib.staticfiles',
  8.     'rest_framework',
  9.     'quick',
  10.     'blog',
  11. ]

  12. REST_FRAMEWORK = {

  13.     'DEFAULT_PERMISSION_CLASSES':(
  14.         #only allow admin user
  15.         #'rest_framework.permissions.IsAdminUser',
  16.         #use django's standard users permissions,
  17.         # or allow read-only access for unauthenticated users
  18.         #'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
  19.     ),

  20.     'PAGE_SIZE':10
  21. }

     首先实现数据库,models.py
     

点击(此处)折叠或打开

  1. class His_Comm(models.Model):
  2.     his_id = models.CharField(max_length=10)
  3.     host_ip = models.GenericIPAddressField(default='')
  4.     his_user = models.CharField(max_length=10)
  5.     his_time = models.CharField(max_length=20)
  6.     his_command = models.CharField(max_length=200)

  7.     def __str__(self):
  8.         return self.his_id
      
       设置数据库接口序列化
  serializers.py
  

点击(此处)折叠或打开

  1. from rest_framework import serializers
  2. from quick.models import His_Comm

  3. class HisSerializser(serializers.HyperlinkedModelSerializer):
  4.     class Meta:
  5.         model = His_Comm
  6.         fields = ('his_id','host_ip','his_user','his_command','his_time')
    设置展示序列化数据  
    views.py

点击(此处)折叠或打开

  1. from rest_framework import viewsets
  2. from serializers import
  3. UserSerializer,GroupSerializer,HisSerializser
  4. from quick.models import His_Comm

  5. class HisSet(viewsets.ModelViewSet):
  6.     queryset = His_Comm.objects.all()
  7.     serializer_class = HisSerializser

urls.py设置路由  
    

点击(此处)折叠或打开

  1. from rest_framework import routers,urls



  2. router = routers.DefaultRouter()
  3. router.register(r'hist',views.HisSet)

  4. urlpatterns = [
  5.     url(r'^api/', include(router.urls)),        #接口api
  6.     url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework')),    #接口账户认证
  7. ]


实现了hist的接口实现,当使用post方法时,需要在settings. REST_FRAMEWORK.DEFAULT_PERMISSION_CLASSES 设置权限。是否允许匿名用户实现post数据库请求。
阅读(1747) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~