一个DRF框架的小案例
第一步:安装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框架的小案例的更多相关文章
- JavaWeb_(Struts2框架)Ognl小案例查询帖子
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- 一个简单的Maven小案例
Maven是一个很好的软件项目管理工具,有了Maven我们不用再费劲的去官网上下载Jar包. Maven的官网地址:http://maven.apache.org/download.cgi 要建立一个 ...
- SSM框架CRUD小案例
1.数据库准备 部门tbl_dept 员工tbl_emp 建立员工和部门的外键 2.在IDEA创建SSM项目环境 2.1配置Web模块 最上面的图是错误示范,注意!!! 在Tomcat配置了项目路径, ...
- angular前端框架简单小案例
一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> &l ...
- 一个用户管理的ci框架的小demo--转载
一个ci框架的小demo 最近在学习ci框架,作为一个初学者,在啃完一遍官方文档并也跟着官方文档的例程(新闻发布系统)做了一遍,决定在将之前练习PHP与MySQL数据库的用户管理系统再用ci框架实现一 ...
- 《java入门第一季》之类小案例(模拟用户登录)
首先是做一个用户登录的小案例.在此基础上加入其它逻辑. import java.util.Scanner; /* * 模拟登录,给三次机会,并提示还有几次.如果登录成功,就可以玩猜数字小游戏了. * ...
- Ajax传递json数据简介和一个需要注意的小问题
Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...
- Vue小案例(一)
案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...
- react框架实现点击事件计数小案例
下面将以一个小案例来讲解react的框架的一般应用,重点内容在代码段都有详细的解释,希望对大家有帮助 代码块: 代码块: import React from 'react'; import React ...
随机推荐
- vmware下使用nat方法联网
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Li_Zefeng/article/det ...
- 网络爬虫之JSOUP
JSOUP中文文档:http://www.open-open.com/jsoup/推荐博客:http://www.cnblogs.com/jycboy/p/jsoupdoc.html 从一个URL加载 ...
- mac安装卸载brew
1.安装 访问https://brew.sh,copy图中的命令到命令行中,进行下载安装 2.卸载 官方版本的卸载: /usr/bin/ruby -e "$(curl -fsSL https ...
- 1rem,1em,1vh,1px含义
rem:相对于页面根元素<html>元素,通常做法是给html元素设置一个字体大小,然后其他元素的大小就是相对于根元素的大小 em:相对于父元素字体大小,元素的width/height/p ...
- android studio配置模拟器
配置模拟器在Android开发中,肯定是要写好代码看结果的,如果使用as中自带的模拟器太low,启动速度又慢,网上有很多教程推荐使用genymotion模拟器的,可是如果是新手我建议选择更好入门的第三 ...
- 运用在伪类content上的html特殊字符
原文转载于:https://www.cnblogs.com/wujindong/p/5630656.html 项目中用到的一些特殊字符和图标 html代码 <div class="cr ...
- 【转】交换分区SWAP
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对 ...
- 009-流程控制 for 语句
流程控制 for 语句 ##################### 语法一 ################################# #!/bin/bash do echo $i done ...
- spring5
Spring 是面向 Bean 的编程(Bean Oriented Programming, BOP) ,Spring 提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系. 控制反 ...
- 【python基础】集合方法汇总
一.定义 用于存储一组无序的不重复的数据 二.特点 1. 集合是无序的 2.集合中的元素是不重复的, 唯一的 3.集合中存储的数据必须是不可变的数据类型 4.集合是可变的数据类型 三.语法 set1 ...