zoukankan      html  css  js  c++  java
  • Django REST框架简单使用

    建立一个新的环境

    在我们做任何其他事情之前,我们将使用virtualenv创建一个新的虚拟环境这将确保我们的包配置与我们正在处理的任何其他项目保持良好隔离。

    virtualenv env
    source env/bin/activate

    现在我们已经进入了virtualenv环境,我们可以安装我们的包需求。

    pip install django==1.11
    pip install djangorestframework

    建立一个新的项目

    创建一个可以使用的新项目

    django-admin startproject demoDRF
    cd demoDRF

    完成后,我们可以创建一个应用程序,我们将用它来创建一个简单的Web API。

    python manage.py startapp demo

    我们需要添加我们的新demo应用和rest_framework用用INSTALLED_APPS。让我们编辑demoDRF/settings.py文件:

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

    创建要使用的模型

    首先创建一个demo用于存储代码片段的简单模型。继续编辑demo/models.py文件

     1 from django.db import models
     2 
     3 
     4 # Create your models here.
     5 class Select(models.Model):
     6     title = models.TextField()
     7     a = models.CharField(max_length=255)
     8     b = models.CharField(max_length=255)
     9     c = models.CharField(max_length=255, blank=True, null=True)
    10     d = models.CharField(max_length=255, blank=True, null=True)
    11     select_answer = models.CharField(max_length=4)
    12     type = models.IntegerField()
    13 
    14     class Meta:
    15         db_table = 'select'

    我们还需要为我们的代码段模型创建初始迁移,并首次同步数据库。

    python manage.py makemigrations demo
    python manage.py migrate

    创建一个Serializer类

    我们需要开始使用Web API的第一件事是提供一种将代码段实例序列化和反序列化为表示形式的方法json我们可以通过声明与Django表单非常相似的序列化器来完成此操作。名为demo目录中创建一个文件,serializers.py然后添加以下内容。

    1 from rest_framework import serializers
    2 from .models import Select
    3 
    4 
    5 class SelectSerializer(serializers.ModelSerializer):
    6     class Meta:
    7         model = Select
    8         fields = ('id', 'title', 'a', 'b', 'c', 'd', 'select_answer', 'type')

    编写常规Django视图

    让我们看看如何使用我们的新Serializer类编写一些API视图。

    编辑demo/views.py文件,然后添加以下内容。

    1 from rest_framework import viewsets
    2 from .models import Select
    3 from .serializers import SelectSerializer
    4 
    5 
    6 # Create your views here.
    7 class SelectViewSet(viewsets.ModelViewSet):
    8     queryset = Select.objects.all()
    9     serializer_class = SelectSerializer

    编写URL视图

    最后,我们需要连接这些视图。创建demo/urls.py文件:

     1 from django.conf.urls import url, include
     2 from rest_framework.routers import DefaultRouter
     3 from .views import SelectViewSet
     4 
     5 
     6 router = DefaultRouter()
     7 router.register(r'select',SelectViewSet)
     8 
     9 urlpatterns = [
    10     url('', include(router.urls)),
    11 ]

    测试我们对Web API的第一次尝试

    启动Django的开发服务器。

    python manage.py runserver

    在浏览器中输入   http://127.0.0.1:8000/ 访问测试

  • 相关阅读:
    畅通工程续 dijkstra
    能量项链 区间dp
    机器人军团
    skiing
    数论知识
    灯泡游戏
    60. 第k个排列
    17. 电话号码的字母组合
    101. 对称二叉树
    144. 二叉树的前序遍历
  • 原文地址:https://www.cnblogs.com/zhouzhishuai/p/10400928.html
Copyright © 2011-2022 走看看