首页 > 其他分享 >serializers序列化函数简单入门

serializers序列化函数简单入门

时间:2023-02-19 08:33:04浏览次数:47  
标签:serializers 入门 models MyModel Rest Django Framework import 序列化

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,入门,models,MyModel,Rest,Django,Framework,import,序列化
From: https://www.cnblogs.com/NKD-eck/p/17134192.html

相关文章

  • PLC入门笔记12
    1.边沿应用(1)边沿开关 (2)上升沿触发下降沿触发(3)MOVPK4M0D0传送比较movp(=mov)脉冲型指令前面条件成立只能执行一次,仅执行一次扫描周期不带PMOV每个扫描周期都......
  • 从零入门Vue.js!六步学习路线和知识体系盘点详解!
    Vue.js是一款流行的JavaScript前端框架,它允许开发者轻松地构建交互性强的用户界面。学习这个阶段的时候有一定门槛,并不是属于零基础就能入门学习的,在学习vue.js的时候可以......
  • 23春第一周学习总结--软件架构入门
    软件架构(softwarearchitecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。......
  • easyui入门
    控件:创建方法:一、标签模式<ahref='#'class='easyui-linkbutton'data-options="iconCls:'icon-search'">easyui入门</a>二、编程模式<ahref="#"class="hehe">第......
  • Istio从入门到精通——Istio 架构
    Istio架构https://istio.io/latest/docs/ops/deployment/architecture/Istio服务网格在逻辑上分为 数据平面 和 控制平面。The dataplane iscomposedofa......
  • Terraform基础入门 (Infrastructure as Code)
    目录前言介绍Terraform术语Terraform如何工作关于provider安装开启本地缓存demo1(docker+nginx)demo2(docker+zookeeper+kafka)参考资料前言像写代码一样管理基础设施......
  • 泰坦尼克号-titanic-kaggle入门比赛
    Kaggle-入门比赛-泰坦尼克号importpandasaspdimportmatplotlib.pyplotasplttrain_data=pd.read_csv("data/train.csv")test_data=pd.read_csv("data/test.c......
  • vue+.net入门级书签项目
    vu3+.net6webApi书签管理项目前言Gitee项目地址:https://gitee.com/zyplj/book-marksGithub项目地址:https://github.com/ZyPLJ/BookMarks作为一个bug程序员,保存了很多......
  • 从入门到进阶:Elasticsearch高级查询技巧详解
    Elasticsearch是一款功能强大的全文搜索引擎,它使用Lucene搜索库进行底层索引和搜索。Elasticsearch提供了许多高级查询技巧,可以帮助用户更准确、更高效地查询数据。本教程将......
  • Istio从入门到精通——Istio Deployment Models
    IstioDeploymentModelshttps://istio.io/latest/docs/ops/deployment/deployment-models/ WhenconfiguringaproductiondeploymentofIstio,youneedtoanswer......