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: ...
随机推荐
- 实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类
概述 MobileNetsV2是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网,此模型基于 MobileNetV2: Inverted Residuals and Linear ...
- javascript 面向对象学习(二)——原型与继承
什么是原型? 首先我们创建一个简单的空对象,再把它打印出来 var example = {} console.log(example) 结果如下: { __proto__: { constructor ...
- linux安装syncthing
https://blog.csdn.net/weixin_30527551/article/details/98882344 https://syncthing.net/downloads/ http ...
- Django 源码阅读笔记(基础视图)
django源码解读之 View View. ContextMixin.TemplateResponseMixin.TemplateView.RedirectView View class View( ...
- 2019-02-03 线性表的顺序储存结构C语言实现
#include<cstdio> #define MAXSIZE 20 typedef int Elemtype; //Elemtype类型根据实际情况而定,这里取int typedef ...
- selenium获取图片验证码
# encoding:utf-8 from PIL import Image from selenium import webdriver url = '网站地址' driver = webdrive ...
- 基于JQuery的简单富文本编辑器
利用jQuery实现最简单的编辑器 我试了很多种方法,目前最快捷能够实现及其简单的编辑可以使用 document.execCommand("ForeColor", "fa ...
- 浅谈RegExp 对象的方法
JavaScript RegExp 对象有 3 个方法:test().exec() 和 compile().(1) test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 tr ...
- rust 学习之旅一, rust编程环境相关
Mac rust环境 rust安装: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rust更新: rustup upd ...
- SpringBoot读取application.properties中文乱码
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 解决方案 在ID ...