08 2021 档案
用户管理
摘要:一、概述 Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。 例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护
Linux之开机、重启和用户登录注销
摘要:关机、重启命令 命令描述 shutdown –h now 立该进行关机 shutdown -h 1 "hello, 1 分钟后会关机了" 1 分钟后会关机并发送消息给每个在线的人员 shutdown –r now 现在重新启动计算机 halt 关机,作用和上面一样. reboot 现在重新启动计算机
DRF自动生成接口文档
摘要:自动生成接口文档 自动生成接口文档对于开发、运维以及和前端联调接口都是很有用的,所以DRF也有自动生成接口文档功能。 接口文档以网页的方式呈现。类似Java项目的swagger 自动接口文档能生成的是继承自APIView及其子类的视图。函数视图不会自动生成接口文档 安装依赖 REST framewr
DRF 分页Pagination
摘要:分页Pagination 分页配置 REST framework提供了分页的支持。 在配置文件中设置全局的分页方式,如: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagin
过滤Filtering和排序
摘要:DRF过滤 对于列表数据可能需要根据字段进行过滤,可通过添加django-fitlter扩展来增强支持。 pip install django-filter 在配置文件中增加过滤后端的设置: INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用, ] R
Linux目录结构
摘要:概述 使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如 /bin/bash 等。Linux 文件系统目录总体呈现树形结构,/ 根
权限Permissions
摘要:DRF权限 权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。 在执行视图的dispatch()方法前,会先进行视图访问权限的判断 在通过get_object()获取具体对象时,会进行对象访问权限的判断 使用 在配置文件中设置默认的权限管理类,如 REST_FRAMEWORK = { 'D
路由Routers
摘要:对于视图集ViewSet,除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来快速实现路由信息。 REST framework提供了两个router SimpleRouter DefaultRouter 1. 使用方法 1) 创建router对象,并注册视图集,
视图集ViewSet
摘要:视图集 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据 destory() 删除数据 ViewSet视图集类不再实现get()、post()等方法,而是实现动作
视图--视图类
摘要:视图概览 REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写。 视图的继承关系: APIView rest_framework.views.APIView rest_framework.views.APIView APIView是REST framework提供的所有视
视图--请求和响应
摘要:Django REST framwork在Django基础上对视图进行了封装和扩展,方便编写Restful接口代码 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 Request 与 Response 1. Requ
Serializer序列化器
摘要:Serializer序列化器 序列化器作用 进行数据的校验 对数据对象进行转换 简单点,序列化器作用就是将对象序列化,以便于在网络中进行传输,和将网络中传输的数据反序列化为实体对象,便于服务端处理和持久化等,在反序列化时可以对数据进行校验等。 根据model类定义序列化器 class BookSer
Django REST framework
摘要:Django REST framework 介绍 DRF框架是基于Django框架,对Django框架的封装,以提高开发效率和减少重复模块代码,并对一些功能进行了扩展,提高易用性。关于DRF官方文档讲述的非常全面,这里也有中文版的官方文档可参考。 特点 提供了定义序列化器Serializer的方法,
使用 Dockerfile 定制镜像
摘要:Dockerfile制作镜像 从 docker commit 了解到镜像的定制实际上就是定制每一层所添加的配置、文件。如果可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Doc
定制镜像
摘要:使用commit制作镜像 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础。在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜像。下面如何定制镜像。
Docker镜像
摘要:使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。 获取镜像的三种方式: 从仓库获取镜像; 管理本地主机上的镜像; 介绍镜像实现的基本原理。 Docke
Docker Registry
摘要:镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。 一个 Docker Registry 中可以包含多个 仓库(Repository);每个仓库可以包含多个 标签(Tag
Docker容器
摘要:镜像是静态的一组文件系统,镜像执行运行后,就是容器。 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运
Docker镜像
摘要:操作系统分为 内核 和 用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root
Docker基本概念
摘要:Docker基本概念 镜像(Image):是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变; 容器(Container):类似于一个轻量的沙箱,d
Docker
摘要:背景 虚拟化技术很早就出现了,比如Vmware、OpenStack等,为什么又出现容器虚拟化?Docker的容器虚拟化和传统虚拟化技术有哪些区别? 传统的虚拟化技术 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,
K8s与OpenStack关系
摘要:简介 Kubernetes 面向应用层,变革的是业务架构,而 OpenStack 面向资源层,改变的是资源供给模式。使用容器且集群规模不大,直接用 Kubenetes 就可以;集群规模大,不管应用是否只是跑在容器中,都是 OpenStack + Kubernetes 更好。 OpenStack +
云计算简介
摘要:什么是云计算 云计算(cloud computing)一种计算资源交付模型,其中集成了各种服务器、应用程序、数据和其它资源,并通过 Internet 以服务的形式提供这些资源。通常对资源进行了虚拟化。虚拟化是实现云计算的一种方式。 云计算就是计算资源的提供,包括服务器、存储、计算能力、网络、安全等。
openjdk下载源
摘要:背景 sun被oracle收购之后,慢慢的各种资源开始限制,现在从oracle官网下载jdk很是麻烦,很多公司开始使用openjdk,可是因为墙的存在,下载速度很慢,然后就出现了国内的各种下载源,这里使用的是清华大学的,速度很快,资源也很丰富。 访问下边链接即可下载所需的openjdk 根据需要下载
Windows系统查看端口占用并杀掉该进程
摘要:背景 有时可能会在本地启动springboot项目,使用swagger调试接口,可能会发生项目所用的端口被其他进程所占用,导致项目启动失败,就要查看该端口号是否被占用,如果占用杀掉该进程。 步骤 启动windows命令行窗口,并输入命令,输入netstat -ano然后回车,就可以看到系统当前所有的
Jar包混淆加密
摘要:背景 一般公司开发的项目上线前都会做安全审核,为了保护一些私密代码和一些敏感信息,均需要加密处理,比如各种密码、license处理的等,就用到jar包混淆。 混淆工具 jar包混淆工具挺多的,实现原理不尽相同,这里使用的classfinal, classfinal介绍 ClassFinal是一款ja
Spring Boot的资源加载路径和classpath问题
摘要:1、Spring Boot默认加载文件的路径 /META-INF/resources/ /resources/ /static/ /public/ 也可以从Spring Boot的源码看到: private static final String[] CLASSPATH_RESOURCE_LOCAT
Java8 Stream
摘要:1、Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。 那么什么是Stream? Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行
数据库存储IP地址
摘要:背景 项目中可能会保存ip地址到数据库的需求,尤其是当数据量较大时,选择合适的存储方式能大大提高ip地址查询效率。 无符号整数 在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。 相对字
MyBatis动态 SQL
摘要:背景 两年没写java代码,由于项目需要用到Java,复习下Mybatis的动态sql提高工作效率,至于springboot怎么整合mybatis,见这里 类型别名(typeAliases) 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。 在m