- 博客(182)
- 收藏
- 关注
原创 Mysql主从搭建Django读写分离
Mysql主从Mysql主从原理:master会将变动记录到二进制日志(BinLog)里面然后master会有一个I/O线程将二进制发送到salve(从库)此时slave也会有一个I/O线程吧master发送的二进制写入到relay日志里面最后salve有一个SQL线程,按照relay日志处理slave的数据操作步骤一、准备好两台mysql的服务器(再次使用docker模拟两台机器)环境mysql版本ip地址端口号主库(master)5.7172.16.209.
2021-02-10 14:11:30
239
1
原创 Nginx多容器部署web项目uwsgi+Django+Redis+Mysql
一、准备工作1.镜像拉取# 查看自己的镜像docker images# 拉取项目需要的镜像docker pull python:3.6docker pull mysql:5.7docker pull redis2.构建docker网络,让他们在同一个网络下实现互通docker network ls # 查看自己的docker网络docker network create luffu\y # 创建luffy网络二、测试网络1.启动mysql# 需要指定rootdocke
2021-01-22 17:58:44
598
1
原创 Celery
Celery执行流程1.实例化app 2.app装饰几个任务 3.其他函数导入这个任务并使用 函数.delay执行(此时并不是真正的执行而是将它放入broker中,如果这个时候worker启动,或者已经启动,他就立即执行) 4.得到结果放入redis中程序运行启动任务建议参考官方文档由于没有任务所以程序一直停在哪里添加任务celery_test.py@app.task # 用此装饰器装饰def add(x, y): print(f'正在计算{x},{y}的和.....')
2021-01-06 09:36:16
368
1
原创 Redis
Redis初始一、Redis是什么Mysql是一个关系型数据,表与表之间是关联的,并且数据是存储在硬盘上的 ,redis是一个key-value存储方式,是一个内存数据化,取值存值都是放在内存中,操作非常快。它支持存储的value类型相对更多。string(字符串)list(链表)–相当于列表set(集合)–其他语言是没有集合的zset(sorted set --有序集合,并且不重复) 用途—排行榜hash(哈希类型)–就是咱的字典和Memcached类似都支持集群,他们之间的不同
2021-01-05 19:25:47
318
原创 Day 02 Gitee仓库基本操作
Day 02 Gitee仓库基本操作一、仓库基本管理初始化一个Git仓库(以/home/gitee/test文件夹为例)$ cd /home/gitee/test #进入git文件夹$ git init #初始化一个Git仓库将文件添加到Git的暂存区$ git add "readme.txt" $ git add . # 将当前目录下所有的文件添加到暂存区注:使用git add -A或git add . 可以提交当前仓库的所有改动。查看仓库当前文件
2020-12-28 20:35:53
306
原创 Day 01 Gitee基本概念
Day 01 Gitee基本概念一、什么是仓库在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如果存在,则会将.git目录存在的文件夹开始下的所有文件当成你需要管理的文件,所以,我们如果想将某个文件夹当做一个Git仓库,你可以在那个文件夹下通过终端(Window为Cmd或者PoewrShell或者Bash)来执行git init这样,你所期望的那个文件夹就成为了一个Git管理的仓库了二、什么是
2020-12-28 20:35:14
453
原创 Day 06 Vue--生命周期
Day 06 Vue–生命周期一、Vue实例的生命周期从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,就是Vue实例的生命周期。二、生命周期钩子生命周期钩子:就是生命周期事件的别名。生命周期钩子又叫生命周期函数 也叫生命周期事件。创建期间的生命周期函数:三 钩子函数beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatebeforeDestroydestroyed3.1 beforeCrea
2020-12-18 16:32:20
331
1
原创 Day 05 Vue---组件
Day 05 Vue—组件from一、组件1、组件是什么?有什么用组件类似于django模板语言中的include,用来扩展HTML元素,封装可用代码,目的是复用-------例如:有一个轮播,可以在很多页面中使用,一个轮播有js,css,html-------组件把js,css,html放到一起,有逻辑,有样式,有html2、组件注册方式2.1 全局组件定义方式是用Vue对象创建一个新的component<script> //没有代码提示,语法检查,目前这
2020-12-17 22:39:14
462
原创 Day 04 Vue--前后端交互--方法
Day 04 Vue–前后端交互–方法一、fetchvue项目跟后端交互,可以使用ajax1、使用jquery的ajax实现1.1 html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
2020-12-16 19:57:41
317
原创 Day 03 Vue--前后端交互--跨域问题
Day 03 Vue–前后端交互–跨域问题一、什么是跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。—浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)http://www.123.com/inde
2020-12-16 19:54:30
708
原创 Day 02 条件渲染
Day 02 条件渲染一、class和style的控制1.class的三种控制方式<template> <div id="test"> <div :style="'background:cyan'+';'+'padding:20px'"> <h1>class的三种写法</h1> <div :class="isActive?'red':'green'">class三目写法</div>
2020-12-15 23:13:48
299
原创 Day05 deployment操作(滚动更新,缩容扩容)
Day05 deployment操作(滚动更新,缩容扩容)一、滚动更新1.准备工作(镜像制作)以下准备工作是制作两个版本不同的镜像,不想做的同学可以不做直接拉取我制作好的镜像registry.cn-hangzhou.aliyuncs.com/k8s2me/django:v1registry.cn-hangzhou.aliyuncs.com/k8s2me/django:v21.1 创建Django项目修改setting配置ALLOWED_HOSTS = ['*']MIDDLEWARE =
2020-12-10 23:26:52
524
原创 Day04 通过配置 资源清单 构建POD
Day04 通过配置 资源清单 构建POD一、PodsPod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod (就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于
2020-12-09 21:12:40
418
原创 K8S相关问题
持续更新中一、master主机重启后 6443 端口问题(sawpoff问题)[root@k8s-master ~]# kubectl get nodeThe connection to the server 10.0.0.80:6443 was refused - did you specify the right host or port?# 通过 systemctl status kubelet.service 查看状态[root@k8s-master ~]systemctl status
2020-12-09 08:23:07
315
原创 Day 03 进入后台
Day 03 进入后台命名空间kubectl get namespaces ------------------------------------------------------------------------NAME STATUS AGEdefault Active 11hkube-node-lease Active 11hkube-public Active 11hkube-system
2020-12-08 23:43:28
344
2
原创 Day 02 海外镜像构建
Day 02 海外镜像构建一、找到我们需要的网络插件1.Github搜索我们需要的插件然后我们阅读readme文档,上面有如何工作,介绍等信息,我们找到找到如下内容我们的是1.19版本,所以需要使用这条命令2.查看文件内容2.1 我们可以直接查看到里面的相关信息,浏览器输入地址2.2 也可以通过linux的wget功能下载下来查看wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube
2020-12-08 22:05:57
883
1
原创 Day01 K8S安装部署
微服务:一个模块分成多个模块分布式:多台机器组成一台机器Day01 K8S安装部署一、主机相关配置1 关闭selinux,关闭防火墙1.1关于防火墙的原因(nftables后端兼容性问题,产生重复的防火墙规则)1.2关于selinux的原因(关闭selinux以允许容器访问宿主机的文件系统)# 永久关闭sed -i 's#enforcing#disabled#g' /etc/sysconfig/selinux# 零时关闭setenforce 0`vi /etc/selinux/con
2020-12-07 23:04:45
501
原创 Day 05 Docker网络详解
Day 05 Docker网络详解注意:云服务器默认只暴露80端口,所以我们如果要通过外网访问,只能映射到80端口理解Docker0清理所有镜像docker rmi -f $(docker images -aq)二、三个网络2.1 简介docker 中默认有三种网络模式我们可以通过docker network ls看到他们2.1 创建(删除)网桥docker network create [网桥名称][root@s ~]# docker network create test01-
2020-12-04 11:12:37
535
原创 Day 04 Docker 容器
Day 04 Docker 容器1.容器命令docker run 镜像id 新建容器并启动docker ps 列出所有运行的容器 docker container listdocker rm 容器id 删除指定容器docker start 容器id #启动容器docker restart容器id #重启容器docker stop 容器id #停止当前正在运行的容器docker kill 容器id #强制停止当前容器说明:我们有了镜像才可以创建容器,Linux,下载centos镜像来学习
2020-12-02 21:24:21
300
原创 Day03 使用Docker镜像
Day03 使用Docker镜像docker 镜像是 docker 中三大概念之一,其主要作用是作为启动容器的模板。Docker镜像常用命令docker images #查看所有本地主机上的镜像 可以使用docker image ls代替docker search 搜索镜像docker pull 下载镜像 docker image pulldocker rmi 删除镜像 docker image rm2.1 获取镜像 镜像是运行容器的模板,官方 Docker Hub 仓库已经提供了许多镜
2020-12-01 16:30:11
408
原创 Day 02 Docker安装(华为云)
Day 02 Docker安装一、华为云的CentOS7中安装Docker1.备份配置文件:cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak2.安装华为镜像源方案一wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo # 获取华为源镜像
2020-11-30 15:02:43
1182
原创 Day 01 Docker概述
Day 01 Docker概述1.Docker为什么会出现?用户操作 Docker 的容器就像操 作一个快速轻量级的虚拟机一样简单。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植 的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不 会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。一款产品: 开发–上线 两套环境!应用环境,应用配置!开发 — 运维。 问题:我在我的电脑上可以允许!版本更新,导
2020-11-30 15:01:45
184
原创 Day 07进程管理+任务管理
Day 07进程管理+任务管理一、介绍1.什么是进程比如: 开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程。总结一句话就是: 当我们运行一个程序,那么我们将运行的程序叫进程。PS1: 当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限。PS2: 在进程运行的过程中,系统会有各种指标来表示当前运行的状态。2.程序和进程的区别1.程序是数据和指令的集合,是一个静态的概念。比如/bin/ls、/bin/cp等二进制文件。同时程序可以长期存在系统中。2.进程是程
2020-11-27 19:04:39
1172
原创 Day 06-软件管理
Day 06-软件管理一、PRM基本概述1.什么是rpmRPM全称 RedHat Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询2.rpm包名组成部分?RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1jp41qn-1606388881508)(https://i.loli.net/2020/11/26/qGja91yzESudv3H.
2020-11-26 19:08:17
532
原创 Day 05 权限管理-文件权限
Day 05 权限管理-文件权限一、文件管理的基本权限把一个用户加入了一个组,该用户就拥有了该组的权限,当一个用户要操作某个文件时,系统会依次检 索该用户是否是该文件的1拥有者,其次是2组成员,最后是3其他人,如果扫描到是拥有者,则具备拥有者 的权限,不必往后扫描,以此类推1 基本权限介绍基本权限类型r:可读(read)-----------4w:可写(read)-----------2x:可执行(execute)-----------1权限的归属u:属主(user)g:数组(
2020-11-26 19:07:18
1065
原创 Day 04 用户组管理,文件权限
Day 04 用户组管理,文件权限一、Linux用户介绍1.什么是用户用户对硬件资源的操作都需要通过操作系统,比如用户要读取硬盘中的一份关键数据 出于安全考虑,操作系统的开发者们都专门开发了安全机制,要使用操作系统必须事先输入正确的用户名与密 码 这便是用户的由来2.为何要有用户?或者为什么# 主要就是权限问题1、系统上的每一个进程,都需要一个特定的用户运行,一个用户拥有特定的权限,该用户运行的进程与用户 权限一致2、通常在公司是使用普通用户管理服务器,因为root权限过大,容易出问题
2020-11-25 08:26:21
309
原创 Day 03 Linux文件管理高级
Day 03 Linux文件管理高级一、文本处理三剑客命令三剑客命令将在shell编程里深入讲解,此处先学会最基本的使用1.sed流式编辑器,主要擅长对文件的编辑操作,我们可以事先定制好编辑文件的指令,然后让sed自动完成对文件的整体编辑1.1 用法sed 选项 '定位+命令' 文件路径1.2 选项-n 取消默认输出sed -n '1p;2p;4p' 1.txt # 带 n 只打印需要的部分---------------------------------user12312
2020-11-23 18:07:22
313
1
原创 Day 02 linux文件管理
Day 02 linux文件管理一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。------我们可以通过安装 tree 包来显示一下Linux以单根的方式组织文件 所有目录和文件都是从/开始windows是多根目录结构 C,D盘都是目录起点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直
2020-11-23 08:19:32
346
原创 Day 01 虚拟机相关配置
Day 01 虚拟机相关配置一、配置网络1.要实现两台机器间的通信的前提有ip地址两个ip必须是同一网段类似:A:192.168.15.92B:192.168.15.93从概念角度来说:A和B必须是网络地址 相同才被称之为同一网段网络地址:Ip地址和子网地址相与 (任何数字和1相与都不变,任何数字和0相与都得0),相与计算转换成二进制计算2.修改虚拟机的ip地址2.1 查看 ip地址ip a == ip addr两个都可以2.2 修改ip地址(字符串界面 只能通过
2020-11-23 08:18:55
251
原创 Day 30 Xadmin+RBAC+缓存+信号
Day 30 Xadmin+RBAC+缓存+信号Django中内置了RBAC,自己创建了六张表,所以大家都喜欢用Django做后台管理一、PBAC-基于角色的访问控制1.什么是PBACRBAC :是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便2.应用
2020-11-17 21:51:40
418
原创 Day 28 JWT认证相关
Day 28 JWT认证相关一、JWT在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证,我们不再shiyongsession认证机制,而使用Json Web Token认证机制。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服
2020-11-17 15:24:56
1114
8
原创 Day 29 jwt自定义登录+多表操作
Day 29 jwt自定义登录+多表操作一、基于JWT的多方式登录1 手机号+密码 用户名+密码 邮箱+密码2 流程分析(post请求): -路由:自动生成 -视图类:ViewSet(ViewSetMixin, views.APIView) -序列化类:重写validate方法,在这里面对用户名和密码进行校验3 代码实现路由path('login/', views.LoginViewSet.as_view({'post':'create'})),视图class
2020-11-16 22:59:27
422
1
原创 Day 27 分页异常处理接口文档
Day 27 分页异常处理接口文档一、分页PaginationREST frameword 提供了分页的支持写在前面视图继承的不一样,分页器写起来也不一样,比如APIView和GenericAPIViewGenericAPIView+ListModelMixin中包含了 与分页相关的方法这种最简单,只需要配置一下就可以了,但是APIView中没有。则需要自己写1、全局配置我们可以在配置文件中设置全局的分页方式# views.pyclass BookView(GenericViewSet
2020-11-12 22:08:38
426
原创 Day 26 频率类型使用和排序过滤
Day 26 频率类型使用配置信息查找顺序局部配置(优先) 局部配置优先走局部配置全局配置(次优先) 全局没有配置走默认配置默认配置(最后) 全局都没有配置就走默认配置一、表中choice字段的使用choice接收一个元组(保证值不可变),同理每一个选项也是由一个元组**(value,display_name)**构成。显而易见,display_name就是要在页面中展示的。class Book(models.Model): name = models.CharField(ma
2020-11-11 20:04:42
267
原创 Day 25 DRF认证相关
Day 25 DRF认证相关一、DRF认证功能介绍只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件二、源码分析三、自定义认证类(重点)1、使用定义一个类,继承BaseAuthenticationclass LoginAuth(BaseAuthentication): def authenticate(self, request): print(request.data)
2020-11-10 22:34:49
194
原创 Day 24 DRF视图集
Day 24 DRF视图集一、DRF-ModelSerializer多对多数据创建models.pyclass Book(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) author = models.ManyTo
2020-11-06 23:25:18
369
原创 Day 23 DRF序列化器高级用法及相关源码
Day 23 DRF序列化器高级用法及相关源码一、修改删除接口根据restful规范–资源操作由请求方式决定所以目前我们需要不同不同的路由 和 视图类来实现这个功能1. 路由的配置# urls.pyurl(r'^book/$', views.Book.as_view()), # get 所有的查询 以及增加url(r'^book/(?P<id>\d+)$', views.BookInfo.as_view()), # 单个的 删 改 查2.CBV视图的编写# views.
2020-11-05 20:21:36
669
1
原创 Day 20 BBS项目05 评论功能+后台管理
Day 06 BBS项目05 评论功能+后台管理一、根评论功能前端 <div class="text-center" role="alert"></div> # 这里是一个警示框 发表评论成功与否 显示消息 {% if request.user.is_authenticated %} <div class="media" style="margin-top: 15px;padding: 5px 5px 0 5px;"
2020-11-04 22:46:07
1392
原创 Day 22 drf相关使用
Day 22 drf相关使用一 、安装注意:在安装完drf 后我们的 django 会自动升级为最新版,低版本的同学 需要改回来 ,还有一点就是 drf 与django 版本 是存在兼容的,所以我们要找到适合自己django的drf注册下载好了,我们需要在 setting中的 app 下注册二、restful规范REST与技术无关,他代表的是一种架构风格(面向资源架构),REST是 Representational State Transfer的简称,中文翻译为“表征状态转移”Rep
2020-11-04 20:07:36
299
2
原创 Day 21 drf介绍以及安装应用
Day 21 drf介绍以及安装应用一、什么是DRFDjango RESF framework 是一个开源的django扩展,提供了便捷的REST API 开发框架,拥有以下特性;直观的API web 界面。多种身份认证和权限认证方式的支持。内置了OAuth1 和 OAuth2 的支持内置了限流系统根据Django ORM 或者其他库自动序列化丰富的定制层级:函数视图、类视图、视图集合到自动生成API,满足各种需要可扩展性,插件丰富广泛使用,文档丰富二、web开发模式1.前后端
2020-11-04 10:14:26
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅