一个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 BookBook.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接口

原文地址:https://www.cnblogs.com/one-tom/p/11183336.html

时间: 2024-11-05 20:27:53

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

SSM框架CRUD小案例

1.数据库准备 部门tbl_dept 员工tbl_emp 建立员工和部门的外键 2.在IDEA创建SSM项目环境 2.1配置Web模块 最上面的图是错误示范,注意!!! 在Tomcat配置了项目路径,就不需要再webapp这里配置项目路径,不然是找不到这里面的资源的!!!!!!! 2.2 引入Maven的SSM相关依赖 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</group

angular前端框架简单小案例

一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/angular.min.js"></script> <!-- 如果要使用angular 1.必须先引入相关的框架 2.必须在页面body上写一个属性ng-app表示使用angular js应用 3.表达式页面如果需要展示数据,需要写

MyBatis框架入门小案例(关于用mybatis框架对数据库的增删改查)

1.新建一个maven项目,建好相对应的包,在https://mvnrepository.com中导入MyBatis需要的依赖,复制到配置文件中 2.在resources文件下添加mybatis-config.xml文件和mapper文件夹,mybatis-config.xml是连接mysql的主要配置,mapper文件夹存放的是对数据库增删改查的映射 mybatis-config.xml配置如下: <?xml version="1.0" encoding="utf-8

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

首先是做一个用户登录的小案例.在此基础上加入其它逻辑. import java.util.Scanner; /* * 模拟登录,给三次机会,并提示还有几次.如果登录成功,就可以玩猜数字小游戏了. * * 分析: * A:定义用户名和密码.已存在的. * B:键盘录入用户名和密码. * C:比较用户名和密码. * 如果都相同,则登录成功 * 如果有一个不同,则登录失败 * D:给三次机会,用循环改进,最好用for循环. */ public class StringTest2 { public st

分析一个类似于jquery的小框架

在网上下了一个类似于jQuery的小框架,分析源码,看看怎么写框架. 选择器Select //用沙箱闭包其整个代码,只有itcast和I暴漏在全局作用域 (function( window , undefined){ //Itcast函数,参数:selector.返回值一个Itcast对象,功能:new Itcast.prototype.init() function Itcast(selector){ return new Itcast.prototype.init(); } // Itcas

使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发人员更轻松的打造出功能丰富而且美观的UI界面.开发人员不须要编写复杂的javascript,也不须要对css样式有深入的了解,开发人员须要了解的仅仅有一些简单的html标签.jQuery EasyUI为我们提供了大多数UI控件的使用

02SpringMvc_springmvc快速入门小案例(XML版本)

这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图: 第一步:创建springmvc-day01这么一个web应用 第二步:导入springioc,springweb , springmvc相关的jar包 第三步:在/WEB-INF/下创建web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.

Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的好用,今天我们为了博客的保质保量,也就不分开写,我们直接拿比较火的Gson和Fast-json来使用,末尾在进行一些分析 Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 一.各有千秋 两大解析库的东家都是巨头,一个来自于Google官方,一个来自阿里巴巴,我们这

DRF框架之视图的扩展类简介

这里呢,我将为大家介绍一下DRF框架,为我们提供的试图扩展类的使用方法即作用. 在使用视图扩展类时,需要将mixins模块导入到view文件中. from rest_framework import mixins 并且,在使用视图扩展类时,必须结合GenericAPIView基类一起使用. 所谓,视图的扩展类,就是GenericAPIView的子类,他们继承自GenericAPIView类,并在此基础上封装了增删改查的功能函数. 模板代码: class BookInfoAPIView(mixin