快速开始

安装

pip install djangorestframework

  

创建django项目

django-admin startproject mydrf

  

创建APP

cd mydrf
python3 manage.py startapp app01

  

配置文件修改(settings.py)

INSTALLED_APPS = [
...
'rest_framework',
'app01',
] #对于匿名只读
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'
]
}

  

创建数据库表(app01下的models.py)

class IDC(models.Model):
'''机房'''
name = models.CharField(max_length=64, unique=True)
def __str__(self):
return self.name class Host(models.Model):
hostname = models.CharField(max_length=64,unique=True)
ip_addr = models.GenericIPAddressField()
port = models.SmallIntegerField(default=22)
idc = models.ForeignKey('IDC',blank=True,null=True)
system_type_choices = ((0,'Linux'),(1,'Windows'))
system_type = models.SmallIntegerField(choices=system_type_choices,default=0)
memo = models.CharField(max_length=128,blank=True,null=True)
enabled = models.BooleanField(default=1,verbose_name="启用本机") class Meta:
unique_together = ('ip_addr','port')
verbose_name = "主机表"
def __str__(self):
return "%s(%s)"%( self.hostname,self.ip_addr)

  

serialize配置(序列化,返回json格式,在app01下新建rest_serialize.py)

from app01 import models
from rest_framework import serializers
class IDCSerializer(serializers.ModelSerializer):
class Meta:
model = models.IDC
fields = ('name',) #需要返回的字段 class HostSerializer(serializers.ModelSerializer):
class Meta:
model = models.Host
fields = ('id','hostname','ip_addr','port','idc','system_type','memo','enabled')

  

视图配置(app01下新建rest_view.py)

from rest_framework import viewsets
from app01 import models
from app01 import rest_serializer class IDCViewSet(viewsets.ModelViewSet):
queryset = models.IDC.objects.all()
serializer_class = rest_serializer.IDCSerializer class HostViewSet(viewsets.ModelViewSet):
queryset = models.Host.objects.all()
serializer_class = rest_serializer.HostSerializer

  

url配置

from rest_framework import routers
from app01 import rest_viewset
from django.conf.urls import url,include
router = routers.DefaultRouter()
router.register(r'idc',rest_viewset.IDCViewSet)
router.register(r'host',rest_viewset.HostViewSet) urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

  

数据库里随便加点数据,启动django测试

访问http://127.0.0.1:8000/idc/

访问http://127.0.0.1:8000/host/

个人感觉drf的应用场景在前后端分离时,通过json格式交互数据,不用涉及模板渲染等

最新文章

  1. listview的ViewHolder优化
  2. Ansible学习笔记
  3. HDU 4757 Tree
  4. HTML+CSS小实战案例
  5. jQuery1.11源码分析(6)-----jQuery结构总揽
  6. Android -- 自定义View小Demo(一)
  7. angularjs 相关资料
  8. UESTC 250 windy数(数位DP)
  9. Adding iAds to Cocos2d-x on iOS
  10. git clone之后自动checkout文件处理
  11. [APUE]进程控制(中)
  12. python2.7学习记录之三
  13. Spark性能调优之代码方面的优化
  14. Redis应用----消息传递
  15. HibernateTemplate的使用
  16. mac+apue
  17. Chapter 6: The Memory Hierarchy
  18. .Net学习计划
  19. pascalcontext-fcn全卷积网络结构理解
  20. 阿里云主机Nginx下配置NodeJS、Express和Forever

热门文章

  1. php函数引用
  2. JUnit-4.13使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
  3. CDH CM元数据梳理,包括HIVE
  4. HDU 1565:方格取数(1)(最大点权独立集)***
  5. 自定义docker镜像
  6. RedisDesktopManager远程连接Linux系统的Redis服务
  7. 关于在记事本写入"\n"不显示换行的原因
  8. Spark 中的机器学习库及示例
  9. KVM :vnc 远程控制kvm创建虚拟机
  10. Java编程思想:文件读写实用工具