zoukankan      html  css  js  c++  java
  • 121、Django rest framework入门使用

    框架介绍

    为你的django平台通过model生成对应的restfull api,并可以通过对应的http接口来进行 post 、get、put、delete等操作。本文是也并非入门级别,不会带你去了解框架自身,而是直接告诉你怎么做可以快速达到目的。

    安装

    pip install django-rest-framework

    设置

    如果你还没有django的项目,那么你得先安装django并创建一个django项目,并创建数据库表。
    1.如果已有项目可以直接配setting文件 在setting.py 中添加的 rest_framework

    INSTALLED_APPS =(
    ...
    'autoplat',
    'rest_framework',
    )

    2.创建用于数据序列化的代码:
    在自己的APP目录中创建autoplat/serializers.py文件

    from rest_framework import serializers
    from autoplat.models import*
    classProductSerializer(serializers.HyperlinkedModelSerializer):
    classMeta:
    model =Product
    fields =('id','name','isenabled','descr')
    classProjectSerializer(serializers.HyperlinkedModelSerializer):
    classMeta:
    model =Project
    fields =('id','name','isenabled','descr','productid')
    classModuleSerializer(serializers.HyperlinkedModelSerializer):
    classMeta:
    model =Module
    fields =('id','name','isenabled','projectid')

    3.定义Views.py

    from autoplat.forms import*
    from rest_framework import viewsets
    from autoplat.serializers import
    classProductViewSet(viewsets.ModelViewSet):
    """
    定义允许查看和编辑Product API
    """
    queryset =Product.objects.all()
    serializer_class =ProductSerializer
    classProjectViewSet(viewsets.ModelViewSet):
    """
    定义允许查看和编辑Project API
    """
    queryset =Project.objects.all()
    serializer_class =ProjectSerializer
    classModuleViewSet(viewsets.ModelViewSet):
    """
    定义允许查看和编辑Module API
    """
    queryset =Module.objects.all()
    serializer_class =ModuleSerializer

    4.设置访问Urls.py
    通过框架中的routers自动生成api 对应的url

    from django.conf.urls import patterns, url, include
    from rest_framework import routers
    from autoplat import views
    router = routers.DefaultRouter()
    router.register(r'product', views.ProductViewSet)
    router.register(r'project', views.ProjectViewSet)
    router.register(r'module', views.ModuleViewSet)
    urlpatterns =[
    url(r'^api/', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
    ]

    配置基本完成,启动server进行访问测试

    http://127.0.0.1/api/ 出现下面类似页面则配置成功
    图1首页

    图2 具体接口操作

    官网链接

  • 相关阅读:
    [LeetCode] Minimum Depth of Binary Tree
    [LeetCode] Symmetric Tree
    [Leetcode] Same Tree
    [LeetCode] Binary Tree Preorder/Inorder/Postorder Traversal
    [LeetCode] Copy List with Random Pointe
    [LeetCode] Largest Rectangle in Histogram
    [LeetCode] Longest Valid Parentheses
    SQL Server 2005 数据库复制(转载)
    Nginx 大文件上传解决方案(500M以上)
    百度WebUploader 大文件上传解决方案(500M以上)
  • 原文地址:https://www.cnblogs.com/tsbc/p/6531499.html
Copyright © 2011-2022 走看看