1. 创建Django项目和应用程序

首先,我们需要创建一个Django项目和一个Django应用程序。如果你已经有了Django项目和应用程序,请跳过这一步。

$ django-admin startproject myproject $ cd myproject $ python manage.py startapp myapp

2. 安装Django Rest Framework

安装Django Rest Framework,并将其添加到你的Django项目的INSTALLED_APPS设置中。

$ pip install djangorestframework

在settings.py文件中添加以下配置:

INSTALLED_APPS = [ # ... 'rest_framework', 'myapp', ]

3. 创建数据模型和序列化程序

我们将创建一个简单的数据模型,并使用Django Rest Framework的序列化程序将其序列化为JSON格式。

在models.py文件中添加以下代码:

from django.db import models from django.contrib.auth.models import User class MyModel(models.Model): name = models.CharField(max_length=50) owner = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.name

在serializers.py文件中添加以下代码:

from rest_framework import serializers from myapp.models import MyModel class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = '__all__'

4. 创建Django Rest Framework视图

我们将使用Django Rest Framework自动生成的视图来创建一个简单的API。

在views.py文件中添加以下代码:

from rest_framework import generics from myapp.models import MyModel from myapp.serializers import MyModelSerializer class MyModelList(generics.ListCreateAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer

这个视图将自动生成GET和POST方法,以检索和创建MyModel对象。现在,我们可以使用以下命令启动Django服务器:

$ python manage.py runserver

然后在浏览器中打开http://localhost:8000/mymodel/,你将看到一个JSON格式的响应,其中包含了MyModel对象的列表。

5. 扩展Django Rest Framework自动生成的API

现在我们已经创建了一个简单的Django Rest Framework API,并检索了MyModel对象的列表。我们将通过扩展这个API来添加新的功能。

添加PUT和DELETE方法

我们将添加PUT和DELETE方法,以允许客户端更新和删除MyModel对象。

在views.py文件中,将MyModelList视图类扩展为以下内容:

class MyModelList(generics.ListCreateAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer def put(self, request, *args, **kwargs): return self.update(request, *args, **kwargs) def delete(self, request, *args, **kwargs): return self.destroy(request, *args, **kwargs)

在这个例子中,我们重写了put()和delete()方法,并调用了update()

 

serializers序列化函数简单入门的更多相关文章

  1. shell的函数的简单入门

    shell的函数的简单入门 语法: function funcname(){} 示例: #!/bin/bash #定义将参数转化为大写的函数 function strToUpper(){ | tr ' ...

  2. 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数

    包.变量和函数 一.举个例子 现在我们来建立一个完整的程序main.go: // Golang程序入口的包名必须为 main package main // import "golang&q ...

  3. Serializers 序列化组件

    Serializers 序列化组件   为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转 ...

  4. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  5. emacs最简单入门,只要10分钟

    macs最简单入门,只要10分钟  windwiny @2013    无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...

  6. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  7. php ftp文件上传函数--新手入门参考

    在 php编程中,用ftp上传文件比较多见,这里分享个简单入门型的ftp上传实例. <?php /** * ftp上传文件 * 学习ftp函数的用法 */ // 定义变量 $local_file ...

  8. delphi指针简单入门

    delphi指针简单入门:         看一个指针用法的例子:     1         var     2             X,   Y:   Integer;       //   ...

  9. SpringMVC简单入门

    SpringMVC简单入门 与大家分享一下最近对SpringMVC的学习,希望本文章能对大家有所帮助. 首先什么是SpringMVC? Spring 为展现层提供的基于MVC设计理念的优秀的Web框架 ...

  10. JavaScript简单入门(补充篇)

    本文是对上一篇 JavaScript简单入门 的一些细节补充. 一.全局变量和局部变量 在<script>标签内定义的变量是当前页面中的全局变量.即 <script>标签可以直 ...

随机推荐

  1. fields设计与测试

     菲尔兹管理用例 一.向开发找到需求ID 需求设计文档ID 二.在fields的需求列表中,填入ID,创建计划 1.状态:测试接手 2.日期:冒烟日期,测试日期 3.可能遇到的问题: * 搜不到ID ...

  2. kali-国内源-更新系统

    1.更换国内源 vim /etc/apt/sources.list deb https://mirrors.aliyun.com/kali kali-rolling main non-free con ...

  3. Windows常用快捷键(但我本人不太熟知的)

    Shift+Ctrl+ESC: 打开任务管理器 Windows+E: 打开文件资源管理器 Windows+R: 运行文件 Windows+Tab: 切换应用程序 Shift+Delete: 永久删除

  4. vscode的python开发环境搭建,环境变量支持终端命令行(执行当前

    vscode的python开发环境设置 安装vscode,这里不介绍了 安装插件 在${workspaceFolder}的目录下,新建.vscode文件夹(或者修改一下配置,也可以自动生成该文件夹) ...

  5. 解决Hbuliderx的代码不能自动补全的问题

    1.先关掉HBuilder X编辑器 2.找到安装目录下的reset.bat 3.点击reset.bat,提示"确认清除HBuilder X的所有配置吗? 按任意键回车继续,或输入N回车退出 ...

  6. ABAP 拆批拣货交货bapi以及实例

    使用函数 BAPI_OUTB_DELIVERY_CHANGE:拆批bapi WS_DELIVERY_UPDATE:拣货函数 BAPI_OUTB_DELIVERY_CONFIRM_DEC:过账函数 样例 ...

  7. Mysql 原生语句

    1.SQL语句 1.1什么是SQL语句: SQL:结构化查询语言.关系数据库语言的国际标准. 各个数据库厂商都支持ISO的SQL标准:如普通话 各个数据库厂商在标准基础做了自己的扩展:如方言 1.2 ...

  8. 2022-05-30内部群每日三题-清辉PMP

    1.对于一个长期的基础设施项目,由于全球商业环境,项目经理必须获得风险最小的供应商.项目经理应该使用什么合同类型? A.固定总价合同(FFP) B.成本加固定费用合同(CPFF) C.总价加激励费用合 ...

  9. Java-根据父级id将List结构转Tree结构

    List的stream public ResultData queryMenuList() { // 获取所有数据List List<MenuVo> list = MenuDao.quer ...

  10. Java笔记_this关键字

    this关键字 引出this的使用场景: 案例一(通过案例一来引出this的使用场景): /** * @ClassName This02 * @Description TODO * @Author O ...