Django rest_fram_work API View序列化
APIview
单表的GET和POST:
视图
查询所有:
class PublishView(APIView):
# 查询数据
def get(self, request):
# first inquire database
publish = models.Publisher.objects.all()
# data put serializers data packging
bs = PublishModelSerializers(publish, many=True) # many=True多个对象
# return
return Response(bs.data) # 增加数据
def post(self, request):
bs = PublishModelSerializers(data=request.data,many=True) # post不需要定义many=Ture if bs.is_valid():
bs.save() # 保存
return Response("添加成功")
else:
return Response("增加失败")
查询单条:
class PublishDetaiView(APIView):
# 将这个pk设置成和lookup_url_kwarg='pk' 一样的值,不然加后缀会取不到值
def get(self, request, id): # id 不要放到request前面
# 查询数据库
publish = models.Publisher.objects.filter(pk=id)
# 封装打包序列化数据
bs = PublishModelSerializers(publish,many=True) # many=True多个对象
print(bs, 6666666666666666666666666)
# Response 会直接返回josn数据格式
ret = Response(bs.data) return ret # # 修改数据(前端指定id值后,在data中输入k:v即可change数据)
def put(self, request, id):
# inquire database
publish = models.Publisher.objects.filter(pk=id).first()
# data= form request.data client
ps = PublishModelSerializers(publish, data=request.data)
# if ps pass verify
if ps.is_valid():
ps.save()
return Response(ps.data)
else:
return Response(ps.errors) # 删除数据(功能还未实现)
def delete(self, request, id):
print(type(id),5555555555555)
models.Publisher.objects.filter(id=id).delete()
return Response("删除成功")
外键的GET和POST:
视图
查询所有:
# 多条数据
class BookView(APIView):
def get(self, request, *args, **kwargs):
book_list = models.Book.objects.all()
# context十分关键,如果不将request传递给它,在序列化的时候,图片与文件这些Field不会再前面加上域名,也就是说,只会有/media/img...这样的路径!
bs = BookModelSerializers(instance=book_list, many=True, context={'request': request}) # 在做链接的时候需要添加context参数
print(bs)
# 默认就返回json格式的字符串
return Response(bs.data) # 增加数据
def post(self, request):
bs = BookModelSerializers(data=request.data) # post不需要定义many=Ture
if bs.is_valid():
bs.save() # 保存
return Response("添加成功")
else:
return Response("增加失败")
查询单条:
# 单条数据
class BookDetaiView(APIView):
# inquire database
def get(self, request, id, *args, **kwargs):
book_list = models.Book.objects.filter(id=id)
bs = BookModelSerializers(instance=book_list, many=True, context={'request': request}) # 在做链接的时候需要添加context参数
# 默认就返回json格式的字符串
return Response(bs.data) def put(self, request, id, *args, **kwargs):
book = models.Book.objects.filter(pk=id).first()
bs = BookModelSerializers(book, data=request.data) # 单条数据不能使用 many = Ture
if bs.is_valid():
bs.save()
return Response("添加成功")
# return Response(bs.data) # 一般用这个
else:
return Response("添加失败")
# return Response(bs.errors) # 一般用这个 def delete(self, request, id):
models.Book.objects.filter(pk=id).delete()
return Response("删除成功")
Django rest_fram_work API View序列化的更多相关文章
- Django Rest framework 之 序列化
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- 初识Django —Python API接口编程入门
初识Django —Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...
- Django 类方式view进行进行用户验证
问题: Django中,view的书写方式有两种,一种是def函数方式,一种是class方式,函数方式通过@login_required装饰器标记函数,就必须通过用户验证,而类,则没办法通过此方法进行 ...
- Django 基础二(View和urls)
上一篇博文已经成功安装了python环境和Django,并且新建了一个空的项目.接下来就可以正式开始进行Django下 的Web开发了.首先进入项目的主目录: cd ./DjangoLearn/hol ...
- Django中的View视图讲解
Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑. 视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应. 此响应可以是网页的HTM ...
- Django之信号和序列化
前言 Django的信号要从一张抽象图和一个需求说起: 赛道:Django 赛车:http请求 基础设施:Django设置的信号 一.Django内置信号类型 1.既然赛道上有各种基础设置,那么Dja ...
- python3开发进阶-Django视图(View)的常见用法
阅读目录 简述Django的View(视图) CBV和FBV Request对象和Response对象 Django组件(render,redirect)详解 一.简述Django的View(视图) ...
- Django框架 之 view视图
Django框架 之 view视图 浏览目录 概述 简单的视图 HttpRequest对象 CBV和FBV 给视图加装饰器 Request对象 Response对象 JsonResponse对象 Dj ...
- 关于Django中,实现序列化的几种不同方法
前言 关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作. 今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法 创建 ...
随机推荐
- SQL Server 将数据导出为XML和Json
有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQ ...
- Django框架之DRF APIView Serializer
一.APIView 我们在使用DjangoRestfulFramework的时候会将每个视图类继承APIView,取代原生Django的View类 APIView的流程分析: rest_framewo ...
- Haystack搜索框架
1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...
- 关于使用K8S的技术流程
部署Gogs版本管理系统 地址:https://gogs.io/docs 部署Harbor私有仓库 地址:https://github.com/goharbor/harbor/blob/master/ ...
- oracle学习笔记(三)
索引: drop table test1 purge; drop table test2 purge; drop table test3 purge; drop table t purge; crea ...
- ABP 结合 MongoDB 集成依赖注入
1.我们再ABP项目添加一个.NET Core类库 类库名自定定义, 我这里定义为 TexHong_EMWX.MongoDb 添加NuGet包. ABP mongocsharpdriver 添加 A ...
- jquery.pagination.js分页demo
公用jquery.pagination.js /** * This jQuery plugin displays pagination links inside the selected elemen ...
- vue动态加载不同的组件(分内部和外部组件)
<!DOCTYPE html> <html> <head> <title> hello world vue </title> <met ...
- Java 之 request 案例——用户登录
用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,db1数据库中user表 3. ...
- iOS网络请求之数据解析
JSON解析 IOS中Json解析的四种方法 NSURLConnection-网络请求浅析 IOS开发:官方自带的JSON使用 XML 解析 GDataXMLNode应用 IOS学习:常用第三方库(G ...