Django rest Framework入门 二 :DRF框架初体验中其实已经使用了视图了(book.views里面的代码),而且就是实际开发中最常用的模式,但是那是经过DRF框架高度封装的,代码的可读性不好,而且如果不了解里面的细节,当以后遇到需要定制化的工作时可能就无从下手,这一篇笔记会记录一些我自己认为比较重要切常用的实现细节。

写在前面:
本文后面所有的代码样例中,book.urls里面,以下两段代码只能二选一,使用其中一个的时候必须把另外一个注释掉。

第一段是与ViewSet配置使用的,第二段是与ModelViewSet配置使用的。

笔记中提到的代码repo:https://github.com/yexia553/drf

序列化与反序列化

简单地说,序列化就是从数据库中取出数据处理后传给API(请求方);反序列化就是从API(请求方)获取数据处理后存到数据库中。

Django rest Framework入门 一 :手工实现常见API中记录了如何手工基于Django实现常见的API类型,这篇笔记记录一下DRF框架简单使用的体验。

笔记中提到的代码repo:https://github.com/yexia553/drf

安装和配置修改

Django REST Framework

Django本身是一个前后端不分离的框架,适合很多相对简单的开发需求,但是现在很多场景比较复杂,尤其是前端比较复杂,而现在很多前端框架都很不错,能极大简化前端开发工作,这个时候前后端分离就很有必要了;而且现在一般团队中开发成员也都是前后端分离的,前端专门开发UI,后端专门开发业务逻辑;再加上微服务的流行,后端API化的趋势已经很明显了。
Django REST Framework就是一个基于Django的前后端分离框架,可以将后端的功能封装成API对外提供服务。

手工实现API

枸杞岛东崖绝壁的日出

这是前年去枸杞岛玩的时候拍的一张日出,这是我第一次在海上看日出,非常震撼。

照片是用iPhone8原相机拍的,没有任何滤镜和后期加工。

70%的故障都发生在变更的时候

今天在读《SRE·谷歌运维解密》的时候,有一句话让我感触很深。大致意思如下:一个服务大约70%的故障都发生在变更的时候。

70%这个数字不知道他们怎么得来的,但是从个人作为开发和运维两个角色的经验来看,这句话背后想要表达的观点是正确的:变更是故障的主要来源之一。

其实使用DRF也有一段时间了,一些常用的功能基本没有问题,上周在B站上看到一个DRF的教程,看了一下目录觉得还挺齐全的就看了一遍,发现确实很不错,以下是视频的链接:
https://www.bilibili.com/video/BV1Sz4y1o7E8

这个UP主应该一个培训机构的讲师。

说说优缺点。

今天读《SRE·Google运维解密》中关于监控一节的时候,有一段内容讲到了workaround
或者说临时解决办法可能会带来难以偿还的技术债务的问题,在我自己的工作经历中确实有
过这样的经历,值得思考。

人其实是有惰性的,一旦在发生的问题的时候通过某种简单的方法绕过了根因通过打补
丁的方式“解决”了这个问题,那么在没有明确的激励机制的情况,很多时候就不会愿
意再花时间和精力去从根本上解决这个问题。

以下是书中原文

近期部署Prometheus的时候,发现网上竟然很难找到比较好的基于k8s部署的教程,甚至就连helm chart官方repo的教程也很不友好,对于很多参数没有详细的解释,也缺少示例。

推荐两个我觉得还不错的资料地址。

  1. https://prometheus.wang/
    这个资料号称自己是prometheus中文文档。
    内容不是非常多,但是很全面的介绍了prometheus及其周边的使用教程,从部署安装到实际使用示例都有,一天应该就能 按照里面的内容全部走一遍,个人觉得是一个很不错的入门教程,他不能让你精通prometheus,但是足够入门,并且是中文的,对我们很友好

  2. https://prometheus.io/docs/introduction/overview/
    这是官网教程地址,建议先把上面的中文教程全部过一遍,然后再官网教程中按需阅读,不要一上来就想着通读文档,既浪费时间,难度也很大(英文的,而且在没有实战经验的情况下读文档很多地方是不能真正理解的)

  3. https://github.com/prometheus-community/helm-charts
    这个是prometheus helm chart的官方repo, 虽然内容很少,但还是推荐一下,毕竟是官方对的,希望以后他们能在文档上多花点时间吧

推荐一个关于Python装饰器的讲解博客。

讲实话,我虽然了解装饰器,但实际工作中很少用到,最近因为重构代码时想要用装饰器(可以少写一些代码),

所以就好好看了一下这一部分的内容,发现了一个很不错的教程。

0%