Django---drf第一天---作业
1 图书的5个接口写完(使用序列化组件)
urls.py
from django.contrib import admin
from django.urls import path, re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
re_path('books/(?P<pk>\d+)', views.BookView.as_view()),
path('',views.BooksView.as_view())
]
views.py
from django.shortcuts import render
from rest_framework.views import APIView,Response
from app01.models import Book
from app01.ser import BookSerializer
from django.http.response import JsonResponse
from app01.utils import MyResponse
# Create your views here. class BookView(APIView):
def get(self,request,pk):
book = Book.objects.filter(nid=pk).first()
book_ser = BookSerializer(book)
return Response(book_ser.data) def put(self,request,pk):
response_msg = {'status':100,'msg':'成功'}
book = Book.objects.filter(nid=pk).first()
boo_ser = BookSerializer(instance=book,data=request.data) if boo_ser.is_valid():
boo_ser.save()
response_msg['data']=boo_ser.data
else:
response_msg['status'] = 101
response_msg['msg'] = '数据校检失败'
response_msg['data'] = boo_ser.errors return Response(response_msg) def delete(self,request,pk):
response = MyResponse()
ret = Book.objects.filter(nid=pk).delete()
return Response(response.get_dict) class BooksView(APIView):
def get(self,request):
response = MyResponse()
books = Book.objects.all()
book_ser = BookSerializer(books,many=True)
response.data = book_ser.data
return Response(response.get_dict) def post(self,request):
response_msg = {'status':100,'msg':'成功'}
book_ser = BookSerializer(data=request.data) if book_ser.is_valid():
book_ser.save()
response_msg['data'] = book_ser.data
else:
response_msg['status'] = 102
response_msg['msg'] = '校检数据失败'
response_msg['status'] = book_ser.errors
return Response(response_msg)
modles.py
from django.db import models # Create your models here. class Book(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=64)
price = models.DecimalField(decimal_places=2,max_digits=6)
author = models.CharField(max_length=32)
publish = models.CharField(max_length=64)
app01下ser.py创建序列化类
from rest_framework import serializers
from app01.models import Book class BookSerializer(serializers.Serializer):
xxd = serializers.CharField(source='nid')
name = serializers.CharField()
price = serializers.CharField()
author = serializers.CharField()
publish = serializers.CharField() def create(self, validated_data):
instance = Book.objects.create(**validated_data)
return instance def update(self, instance, validated_data):
instance.name = validated_data.get('name')
instance.price = validated_data.get('price')
instance.author = validated_data.get('author')
instance.publish = validated_data.get('publish')
instance.save()
return instance
app01下utils.py创建MyResponse类返回字典
class MyResponse():
def __init__(self):
self.status = 100
self.msg = '成功'
@property
def get_dict(self):
return self.__dict__ if __name__ == '__main__':
res = MyResponse()
res.status = 101
res.msg = '查询失败'
settings.py注册djangorestframwork组件
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
'rest_framework'
]
2 尝试修改一下返回的字段名字
在序列化类BookSerializer的字段中添加参数source
Django---drf第一天---作业的更多相关文章
- python课程第一天作业1-模拟登录
第一周作业: 作业1:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 流程图: 代码:后来修改过一次: #!/usr/bin/env python # -*-conding:ut ...
- 【BUAA-OO】第一单元作业总结
#OO第一单元作业总结 #确认存活,爱学习,爱北航,爱OO 一.三次作业分析 1.第一次作业 1.1 程序结构 对方法的度量: 类的内聚和相互间的耦合情况: 类图: 优缺点: 优点大概没什么优点,毕竟 ...
- BUAA_OO第一单元作业总结
BUAA_OO第一单元作业总结 单元任务 第一单元的任务为实现表达式的求导,其中第一次作业是对简单多项式的求导,第二次作业是对包含简单幂函数和简单正余弦函数的多项式的求导,第三次作业是对包含简单幂函数 ...
- 【OO学习】OO第一单元作业总结
OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对 ...
- 2019OO第一单元作业总结
OO第一单元作业的主题是求导,下面将分三次作业分别总结一下. --------------------------------------------------------------------- ...
- Java第一周作业
Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...
- 解决Django + DRF:403 FORBIDDEN:CSRF令牌丢失或不正确,{"detail":"CSRF Failed: CSRF cookie not set."}
我有一个Android客户端应用程序尝试使用Django + DRF后端进行身份验证.但是,当我尝试登录时,我收到以下响应: 403: CSRF Failed: CSRF token missing ...
- 2018-2019-1 20189221《Linux内核原理与分析》第一周作业
Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...
- C语言--第一周作业评分和总结(5班)
作业链接:https://egdu.cnblogs.com/campus/hljkj/CS2017-5/homework/963 一.评分要求 * 要求1 (5分):博客中给出安装软件的截图(得分点1 ...
- C语言-第一周作业
要求1: 请在你的PC或者移动设备上安装词典,该词典工具能对计算机术语进行翻译.需要在你的博客中给出安装软件的截图,请确保阅读者能从截图判断出你的被安装的设备是PC或者移动设备.(5经验值) 要求2: ...
随机推荐
- Centos6,Centos7防火墙设置与端口开放的方法
Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld.端口的开启还是要从两种情况来说明的,即iptables和firewalld. 一.iptables 1.打开/关闭 ...
- 最后一面挂在volatile关键字上,面试官:重新学学Java吧!
最后一面挂在volatile关键字上,面试官:重新学学Java吧! 为什么会有volatile关键字? volatile: 易变的; 无定性的; 无常性的; 可能急剧波动的; 不稳定的; 易恶化的; ...
- centos7 hadoop 单机模式安装配置
前言 由于现在要用spark,而学习spark会和hdfs和hive打交道,之前在公司服务器配的分布式集群,离开公司之后,自己就不能用了,后来用ambari搭的三台虚拟机的集群太卡了,所以就上网查了一 ...
- CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...
- pip超时问题解决
阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban ...
- 这一次搞懂Spring的XML解析原理
前言 Spring已经是我们Java Web开发必不可少的一个框架,其大大简化了我们的开发,提高了开发者的效率.同时,其源码对于开发者来说也是宝藏,从中我们可以学习到非常优秀的设计思想以及优雅的命名规 ...
- Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 3. 浅层神经网络)
=================第3周 浅层神经网络=============== ===3..1 神经网络概览=== ===3.2 神经网络表示=== ===3.3 计算神经网络的输出== ...
- 如何解决jeecgBoot前端运行项目之后无法获取验证码的问题
我也是第一次接触这个开源项目,拿到项目之后,安装完环境和依赖,当我启动项目的时候,验证码却刷新不出来. 然后公司后端告诉我需要改两个接口,一个是public目录下的index.html和vue.con ...
- 拿来即用:用C+JS结构来处理JSON数据
[面对的问题] 在物联网产品的开发过程中,对JSON格式的数据处理是一个强需求,例如亚马逊的 AWS IOT平台,设备与后台之间的通讯数据都是JSON格式,先瞄一眼大概的样子: 这是一个真实产品的通讯 ...
- IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundException
今天想用Eclipse创建WebService,报错信息 IWAB0398E Error in generating WSDL from Java: java.lang.ClassNotFoundEx ...