关于Django中,实现序列化的几种不同方法
2019-07-07 本文已影响29人
我爱学python
前言
关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作。
今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法
创建一个Django的项目
再新建一个app

创建一个模型,以书本出版社为例,自行迁移完成以后,再配置路由,主要讲解的是views.py,其他的不多说了。

数据库中的内容(使用的是sqlite3)

现在我们来展示数据库中的所有数据,以json的格式传给前端
RESTFUL_DJ/app/views.py
方法一:

结果:

这是谷歌浏览器安装的插件的原因,方便查看,原结构是这样:

方法二:

结果:

方法三:

结果:

方法四:
首先需要安装djangorestframework(pip install djangorestframework)

配置好settings.py文件
在app下新建文件serializers.py,(使用跟form差不多)

在shell中,测试一下展示操作

测试一下create共功能:

运行项目,结果:



在前面创建的serializers.py文件中定义的序列化字段,其实和models中的模型字段是一样的,我们可以继承过来使用

继承serializers.ModelSerializer方法,里面本身就封装好了新建更新等数据操作的方法
更改serializers.py文件的内容:

结果:

还是没有问题,可以使用的。