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: ...
随机推荐
- POJ 2810:完美立方
原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 形如\(a^{2}\)= \(b^{2}\) + \(c^{2}\) + \(d^{2}\)的等式被称为完美立方等式.例如123 ...
- 如何解决flutter中gradle慢的问题
初学flutter的时候,flutter run运行到有gradle的时候就停住不动了,研究后解决方法如下: 打开项目目录 中的 ...\myapp\android\gradle\wrapper\gr ...
- 宝塔面板如何有效的清除SSL证书以及缓存
一:关闭SSL 我们先关闭SSL证书,这个大家都会的吧.如图: 二:证书夹 网站配置的证书夹,我们删除掉,如图: 三:寻找SSL证书路径 网站配置里有一路径我们看下:如下 ssl_certificat ...
- Jupyter的搭建
在家实在无聊,伏案沉思良久,忽然灵机一动,何不写写Python?然而电脑上的软件早已人是物非,Pycharm已然不复存在.但是又不想装软件找激活码,于是,只好建个Jupyter先凑合一下. 1. 安装 ...
- Clear Writer v1.7 更新
拖更了这么久了的我终于来更新了--这可能是今年上半年最后一次更新了-- 这次我打算把 Clear Writer 公开发布了. 下载链接 下载链接在这里. (这次用蓝奏,不用奶牛快传了) Clear W ...
- 14.Django-JWT
一.基于JWT的Token登录认证 1. JWT简介 json Web Token(缩写JWT)是目前最流行的跨域认证解决方案 session登录的认证方案是看,用户从客户端传递用户名和密码登录信息, ...
- snprintf和sprintf区别分析
目录[-] snprintf函数的返回值 snprintf函数的字符串缓冲 今天在项目中使用snprintf时遇到一个比较迷惑的问题,追根溯源了一下,在此对sprintf和snprintf进行一下对比 ...
- Asp.Net Core入门之静态文件
静态文件(css,js,html等类型文件)通常位于 web根目录下,而ASP.Net Core框架默认内容根目录下的wwwroot文件夹为web根目录.这里简单解释下内容根目录:实际就是指包含可执行 ...
- 傻瓜式教学--win10 + frp + rdpwrap + 阿里云服务器 --实现win10 多用户同时远程登录内网机
概述: 使用win10 专业版 + frp + RDPwrap + 阿里云服务器 的组合实现win10 多用户同时远程登录内网机.使用frp 做内网穿透,将内网机的指定端口暴露在外网,通过ip+por ...
- robot framework使用小结(一)
项目组要用到robot framework验收web,因此花了两天时间了解了一下这个框架.我把网上各位大侠分享的内容整理成一个小小demo,参考的出处没有列出来,在此一并感谢各位. demo仍旧是打开 ...