第一步:安装DRF

DRF需要以下依赖:

  • Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)

  • Django (1.10, 1.11, 2.0)

DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)

pip install djangorestframework

第二步:添加rest_framework应用

在**settings.py**的**INSTALLED_APPS**中添加'rest_framework'。

INSTALLED_APPS = [
...
'rest_framework',
]

第三步:在新建的app  book下的models.py文件中创建Book模型类,并注册到 INSTALLED_APPS 中去

from django.db import models

# Create your models here.
class Book(models.Model):
id=models.AutoField(primary_key=True)
title=models.CharField(max_length=64)
state=models.BooleanField()
pub_date=models.DateField()
price=models.DecimalField(max_digits=6,decimal_places=2)
publish=models.CharField(max_length=64)

第四步:执行数据库迁移形成数据库,并往其中添加数据

python manage.py makemigration

python manage.py migrate

添加数据:在python的终端(Python Console) 这个终端进行
from .mode import Book
Book.objects.create(title="")。。。。

得到如下数据:

第五步:创建序列化器

在book应用目录中新建serializers.py用于保存该应用的序列化器。

创建一个BookInfoSerializerr用于序列化与反序列化。

from rest_framework import serializers  # 倒入模块

from book.models import Book
class BookInfoSerializer(serializers.ModelSerializer):
class Meta:
model=Book
fields="__all__" # - **model** 指明该序列化器处理的数据字段从模型类BookInfo参考生成
# - **fields** 指明该序列化器包含模型类中的哪些字段,'__all__'指明包含所有字段

第六步:编写视图函数,在book这个app下的views.py文件中创建视图BookInfoViewSet,这是一个视图集合

# 序列化器的使用
from rest_framework.viewsets import ModelViewSet
from .serializers import BookInfoSerializer
from .models import Book class BookInfoViewSet(ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookInfoSerializer ''''
- **queryset** 指明该视图集在查询数据时使用的查询集
- **serializer_class** 指明该视图在进行序列化或反序列化时使用的序列化器
'''

第七步:定义路由,在book这个app下新建urls.py文件。并写入路由文件

from . import views
from rest_framework.routers import DefaultRouter urlpatterns=[ ]
router=DefaultRouter() # 括号不要忘了 ,不然执行不了
router.register(r"book",views.BookInfoViewSet) urlpatterns+=router.urls

第八步:在总的项目路由中也要定义路由

urlpatterns = [
path('admin/', admin.site.urls),
path('', include("book.urls")), # 这个是book应用的序列化路由使用的 ]

第九步:在项目的终端启动项目

python3 manage.py runserver

之后访问对应url,即可看到如下

点击 "http://127.0.0.1:8000/book/"   即可看到:所提供的api接口

一个DRF框架的小案例的更多相关文章

  1. JavaWeb_(Struts2框架)Ognl小案例查询帖子

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  2. 一个简单的Maven小案例

    Maven是一个很好的软件项目管理工具,有了Maven我们不用再费劲的去官网上下载Jar包. Maven的官网地址:http://maven.apache.org/download.cgi 要建立一个 ...

  3. SSM框架CRUD小案例

    1.数据库准备 部门tbl_dept 员工tbl_emp 建立员工和部门的外键 2.在IDEA创建SSM项目环境 2.1配置Web模块 最上面的图是错误示范,注意!!! 在Tomcat配置了项目路径, ...

  4. angular前端框架简单小案例

    一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> &l ...

  5. 一个用户管理的ci框架的小demo--转载

    一个ci框架的小demo 最近在学习ci框架,作为一个初学者,在啃完一遍官方文档并也跟着官方文档的例程(新闻发布系统)做了一遍,决定在将之前练习PHP与MySQL数据库的用户管理系统再用ci框架实现一 ...

  6. 《java入门第一季》之类小案例(模拟用户登录)

    首先是做一个用户登录的小案例.在此基础上加入其它逻辑. import java.util.Scanner; /* * 模拟登录,给三次机会,并提示还有几次.如果登录成功,就可以玩猜数字小游戏了. * ...

  7. Ajax传递json数据简介和一个需要注意的小问题

    Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...

  8. Vue小案例(一)

    案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...

  9. react框架实现点击事件计数小案例

    下面将以一个小案例来讲解react的框架的一般应用,重点内容在代码段都有详细的解释,希望对大家有帮助 代码块: 代码块: import React from 'react'; import React ...

随机推荐

  1. 关于“如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?”的一种思路

    小弟不才,只懂一些c#的皮毛,有一些想法, int32值范围大概在-20亿——20亿,按hashtable一个keyvalue占8B的设定来说,最大可以存储大约2.5亿个 数字-次数对. 那么,可以将 ...

  2. js常见的设计模式一

    1.观察者模式 定义一些一对多的关系,将一系列的观察者对目标函数感兴趣,将自己添加进目标函数,当目标函数状态发生改变时,发送通知,以此通知附加在目标上的观察者 /* 目标 */ class subje ...

  3. Apache 安装后启动出现的错误

    错误信息 1: configure: error: APR not found 解决方法:yum install apr* -y 错误信息 2:httpd: apr_sockaddr_info_get ...

  4. mailaddr - 关于邮件地址的描述

    DESCRIPTION 描述 本手册给出的是 Internet 使用的 SMTP 邮件地址的简要描述.这些地址的通常的格式是 user@domain 这里的域 (domain) 是分级的子域的列表,子 ...

  5. flockfile, ftrylockfile, funlockfile - 为标准输入输出锁定文件 FILE

    SYNOPSIS 总览 #include <stdio.h> void flockfile(FILE *filehandle); int ftrylockfile(FILE *fileha ...

  6. 03python面向对象编程5

    5.1 继承机制及其使用 继承是面向对象的三大特征之一,也是实现软件复用的重要手段.Python 的继承是多继承机制,即一个子类可以同时有多个直接父类. Python 子类继承父类的语法是在定义子类时 ...

  7. Tomcat与jdk在Linux上的安装与配置

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  8. python 删除/app/*/logs/*/*.logs指定多少天的文件

    # encoding: utf-8 import sys import getopt import os import glob import time import datetime def rem ...

  9. 正确重写hashCode方法

    https://blog.csdn.net/HD243608836/article/details/87367763 到这里,对象写完了,开始描述问题. 计算hashCode的注意事项: 1.不能包含 ...

  10. MongoDB之自动启动服务

    安装详细步骤请点我 为了能让NoSQLBooster for MongoDB连接的时候不报错,将mongodb添加到系统服务中. 在C:\Program Files\MongoDB\Server\3. ...