自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式06、观察者模式 策略模式

01、观察者模式--定义:--角色: -- -- -- --02、策略模式

2021-05-16 18:53:50 149

原创 设计模式05、代理模式 责任链模式

01、代理模式--定义:为其他对象提供一个代理以控制对这个对象的访问--应用场景: --远程代理:为远程对象提供的代理 --虚代理:根据需要创建很大的对象 --保护代理:控制对原始对象的访问,用于对象有不同访问权限时(在权限控制上做文章)例如:django的ORM就是远程代理。手机无图模式:根据需要访问/创建对象[点击图片才进行加载],这就是虚代理。网站角色:不同用户权限不同,这就是保护代理--角色: --抽象实体(Subject):统一接口 --实体(RealSubject) --代理

2021-05-16 18:52:55 191

原创 设计模式04、组合模式 外观模式

01、组合模式--定义:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性--角色: --抽象组件(Component) --叶子组件(Leaf) --复合组件(Composite) --客户端(Client)注:主要特点就是:叶子组件 和 复合组件都有同样的属性和方法,例如:单个组件可以删除、复制、改变形状布局、位置,组合的组件也有类似属性--适用场景: --表示对象的"整体-部分"层次结构(特别是结构为递归的) --希望用户忽略组

2021-05-16 18:52:39 179

原创 设计模式03、建造者模式 适配者模式 桥模式

01、建造者模式--定义:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示--角色: --抽象建造者(Builder) --具体建造者(Concrete Builder) --指挥者(Director) --产品(Product)--场景:建造者模式和抽象工厂模式都是为了复杂对象。主要区别在于建造者模式用于一步一步建造一个复杂对象,抽象工厂模式在于一步一步建造一系列复杂对象--优点: --隐藏了一个产品的内部结构和装配过程 --将构造代码和表示代码分开 --可

2021-05-16 17:08:34 98

原创 设计模式02、单例模式 简单工厂 工厂方法 抽象工厂方法

01、单例模式--单例模式:通过python语法控制使得一个类只能实例化一个实例--代码示例:class Single(): def __new__(cls, *args, **kwargs): if not hasattr(cls, "_single"): cls._single = super(Single, cls).__new__(cls) return cls._singleclass Method(Single):

2021-05-16 17:07:57 167

原创 设计模式01、设计模式介绍 面向对象设计原则

1

2021-05-16 17:07:18 78

原创 04、django高并发连接数据库的并发控制问题 和 简单代码测试

01、说一个基本的问题:高并发下的操作mysql数据产生的数据冲突问题--并发控制:当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。 --没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。 --常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同

2021-01-31 19:19:15 1618

原创 pytest05、fixture

01、简介 – fixture 装置设施--fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作。 --在测试网站的功能时,每个测试用例都要登录和退出,利用fixture就可以只做一次,否则每个测试用例都要做这两步也是冗余。 --完成setup和teardown操作,处理数据库或文件的打开、关闭操作 --准备测试数据.将数据提前写入数据库或通过params返回给测试用例--基本使用: @pytest.fixtur

2021-01-23 23:21:33 81

原创 pytest04、pytest常用插件

01、插件地址:https://plugincompat.herokuapp.com/02、生成测试报告 插件--安装 pip install pytest-html --生成测试报告: pytest --html=测试报告路径/***.html03、在pytest.ini中加入报告生成命令addopts = -s --html=test_hello.html--直接执行 pytest即可--如果这里加上了 -s 则不会生成报告--只有参数为addopts = --html=tes

2021-01-23 23:20:58 192 1

原创 pytest03、pytest配置文件

01、配置文件--记住pytest.ini配置文件默认查找test_*.py文件,一定要以test开头02、配置参数--ini文件是以;作为注释语句--配置pytest命令行运行参数[pytest]addopts = -s ... # 空格分隔,可添加多个命令行参数 -所有参数均为插件包的参数--配置测试搜索的路径[pytest]testpaths = ./scripts # 当前目录下的scrip文件夹 可自定义--配置测试搜索的文件名[pytest]python_fil

2021-01-23 23:20:26 98

原创 pytest02、setup 和 teardown的使用

01、python测试的测试固件的创建和销毁--setup()方法用于初始化测试固件--teardown()方法用于销毁测试固件--程序会在运行每个测试用例(以 test_ 开头的方法)之前自动执行 setup() 方法来初始化测试固件,并在每个测试用例(以 test_ 开头的方法)运行完成之后自动执行 teardown() 方法来销毁测试固件。02、函数级别的 setup 和 teardown使用--setup和teardown函数主要分为:模块级、类级、功能级、函数级别--当是函数级别

2021-01-23 23:19:49 882

原创 pytest01、安装和介绍

01、pytest介绍--pytest是python的一种单元测试框架,同自带的Unittest测试框架类似,相比于Unittest框架使用起来更简洁,效率更高.1.非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考2.支持简单的单元测试和复杂的功能测试.3.支持参数化.4.执行测试过程中可以将某些测试跳过,或者对某些预期失败的Case标记成失败 --对某些特别耗时的部分,以及目前不需要进行测试的部分可以跳过 --与对某些执行下来应该是失败的代码通过标记为失败表示是正常的,就是说在正

2021-01-23 23:19:26 141

原创 mysql基础教程05、索引和事务

01、建立索引--查看索引: --show index from 表名; --show create table 表名; 这里查出的带有KEY的字段都是带索引的 --添加索引: --alter table 表名 add index 索引名(字段名) --如果不指定索引名,则字段名和索引名保持一致 --添加以后查看: --show index from 表名;--删除索引: --alter table drop index 索引名; --删完再查看一下:show index f

2021-01-12 16:42:57 68

原创 rabbitmq教程01、基本命令 || 一对一 || 一对多且每个任务一个不同的任务 || 消息确认 || 消息持久化 || 简单的调度参数配置 ||

01、windows安装--erlang安装: --RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang --下载地址:http://www.erlang.org/downloads --安装: --选择安装文件夹,然后一路点击即可 --配置环境变量: --安装路径/bin 添加到path中即可--rabbitmq安装: --下载:http://ww

2021-01-10 12:39:17 179

原创 15、gorm基本使用

01、

2021-01-09 17:09:53 110

原创 mysql基础教程04、mysql高级查询

01

2021-01-06 23:40:21 96

原创 mysql基础教程03、基本配置属性+基本语法

01、数据库基本操作语句--查看数据库: --show databases;--创建数据库: --create database 数据库名 charset = utf8;--切换数据库|开始使用某一个数据 --use 数据库名--删除数据库: --drop database 数据库名;--查看当前数据库状态: --select database();02、数据表基本操作语句--查看数据表 --show tables;--创建

2021-01-05 09:24:59 105

原创 docker使用和部署python项目02、docker部署流程

01、进入ubuntu的容器更新软件--启动一个linux系统的docker容器 --查找docker的linux镜像资源 --docker search ubuntu --下载拉取镜像 --docker image pull ubuntu --启动容器,守护进程 --docker run -dit --name myubuntu01 ubuntu /bin/bash --docker ps 查看启动情况 --d

2021-01-03 23:00:32 197

原创 docker使用和部署python项目01、docker安装和基本命令

01、nginx文档详细地址:https://www.nginx.cn/doc/02、docker介绍Docker 官网:http://www.docker.comGithub Docker 源码:https://github.com/docker/docker--docker安装: --sudo yum install -y yum-utils device-mapper-persistent-data lvm2 --sudo yum-config-manager --a

2021-01-03 22:24:22 141

原创 微服务项目实战02、微服务开发

01、业务场景设定--用户的注册登录,支持跨域[也就是登录之后再登陆其他界面是不需要登陆的,同时尽可能不要使用session,因为微服务是无状态的]--用户登录--登陆以后对课程进行curd操作02、创建maven工程--选择maven工程--groupid: com.imooc--artifactid: micro-service--项目名自动生成--整个项目示意图如下所示: --SSO[单点登录]:一次登录无需重复,使用redis存储用户信息 --两

2021-01-02 14:28:40 444

原创 微服务项目实战01、什么是微服务

01、微服务和传统服务讲解--一个对于学java比较经常碰到的,也是必须要了解的内容。即微服务 docker springboot springcloud的关系--一个基本的应用业务场景图,帮助理解微服务--部署前准备: --服务docker化 --主要是调整服务配置便于做成镜像 --用docker-compose将所有的运行内容集中,并保证容器间的通信 --搭建私有仓库用于存放镜像,所用的是harbor--服务编排: --主要是

2021-01-01 17:46:58 1459

原创 14、结构体

01、自定义类型--使用内置的类型来定义一个自己的类型 --自定义类型使用%T打印出来后,类型名称--代码示例如下: func main(){ var m MyInt // 自定义类型 m = 100 fmt.Println("m值为:", m) // m值为: 100 fmt.Printf("%T %d\n", m, m) // main.MyInt 100 var n anotherInt // 给类型起别名

2020-12-25 12:26:04 100 3

原创 13、go文件读取 和 写入

01、golang打开文件读出一块文件数据,但是数据读不全--读取思路: --打开文件获取操作句柄 --读入一段数据打印 --defer 打开文件句柄之后,立即定义关闭函数 --不论是 os.Open() 还是 file.Read 函数。返回的都有err,需要对err判断是否被打开 对err判断是否读取完毕 --func Open(name string) (file *File, err error) --Open打开一个文件用于打开。返回对象为:

2020-12-24 21:15:35 231

原创 gin_01、安装go goland,并使用go mod初始化第一个项目

01、安装go--下载go,这里使用的是15版本。下载地址如下: --https://golang.google.cn/dl/--下载之后一路点击即可 --最终安装路径:C:\Go --第三方包默认安装路径:C:\Users\27159\go || 也就是说不需要配置GOPATH了--配置 GOROOT 环境变量 --新增 GOROOT:C:\Go --PATH中加入:C:\Go\bin --在cmd中输入 go version 查看go的版本。

2020-12-23 15:35:21 1377 1

原创 tornado-02、基本原理

01、基本原理:--对以下图片进行解释: --1、tornado启动之后,会将socket为预设端口的请求连接置于epoll工具中进行管理。也就是开一个socket专门用于接收连接 --接收到连接之后,会单独开出一个socket,建立一个管道用于专门的前后台通信。前一个socket则空置出来继续接收连接 --接收到连接之后,开始分析报文专项传递到url列表 --2、解析出url列表供socket匹配,同时解析出该url对应的视图类函数 --3、在

2020-12-22 23:06:28 87 1

原创 tornado01、tornado基础

01、两种场景--用户多,并发量大: --秒杀系统,淘宝购物,春节买火车票--连接多且连接持久: --使用一个tcp连接来发送接收多个http请求--以上者两种场景都是基于多线程的服务器难以应付的,然后就是c10k问题,即并发10000个连接怎么处理--tornado是一个框架和服务的集合体,是一种方案--django的特点: --session功能、大而全、ORM框架、后台管理、高效开发--tornado的特点: --http服务器、异步编程、w

2020-12-17 09:00:55 173 1

原创 12、函数类型,变量,匿名函数,闭包[就是python闭包]

01、type关键字:用于定义函数类型--函数类型: --使用type关键字来定义一个函数类型,具体格式如下: type calculation func(int, int) int 注:上面语句定义了一个calculation类型,它是一种函数类型,这种函数接收两个int类型的参数并且返回一个int类型的返回值。 简单来说,凡是满足这个条件的函数都是calculation类型的函数,例如下面的add和sub是calculation类型。--代码示例

2020-12-13 23:58:27 109

原创 11、函数基础

01、函数定义 -- 有返回值--golang是强类型的语言,因此传参和返回时都需要定义参数类型· --定义示例: func 函数名(参数)(返回值){ 函数体 } --代码示例如下: func sum(x int, y int)(ret int){ // 返回值有返回名 和 返回类型 return x+y } func intSum(x int, y

2020-12-11 10:15:15 79

原创 mongodb数据库使用02、mongodb使用提高

01、

2020-11-30 16:38:34 161

原创 mongodb数据库使用03、python和mongodb的交互

--官方文档:http://api.mongodb.com/python/current/01、pymongo -- 插数据--无认证的pymongo连接 from pymongo import MongoClient client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略 collection = client[db名][集合名] # collection = client.db名.集合名 # 与上边用

2020-11-29 22:49:24 143

原创 mongodb数据库使用01、基础查询和数据类型介绍

01、windows安装--下载mongodb数据库,点击安装。配置环境即可02、基本使用:启动 退出!!!!!!在此之前一定要配置环境变量!!!!!!如果之前多次配置其他数据库,这里应该基本不变。尤其和redis配置安装一模一样--启动mongodb服务: mongod --config 配置文件.conf--进入mongo shell命令: mongo即可--退出: exit03、基本使用:创建和删除数据库--pip install pym.

2020-11-29 17:30:49 554

原创 05、项目准备 -- mysql数据库配置 -- redis配置 -- 工程日志配置

01、mysql数据库配置 -- 为特定数据库创建单独的账户--查看数据库:show databases;--新建数据库:create database meiduo charset=utf8;--一般数据库会对应专门的账户密码,设置如下: create user lwx898295 identified by '123456';--授予权限: grant all on meiduo.* to 'lwx898295'@'%' --all 表示所有权限

2020-11-24 00:44:17 145

原创 12、多进程多线程应用测试教程01 -- 如何把生产者消费者模式应用在多线程、多进程中及它们的线程、进程池中

多进程多线程应用测试教程: 锚定在一定的实际问题上的代码,不是凭空炫技,每种都需要设想使用场景和使用意义01、最基本的两个多进程的消费者 生产者模式代码示例--日常代码中常常会出现: --一边生产,一边处理的场景。有的时候就是简单的两个进程,而不需要涉及到更多的进程安排,这种需求可以按照如下来做 --当然优化的方向也有很多,根据不同的处理逻辑可以嵌套更多的进程和线程达到提高速度的目的--这里需要注意的是: --使用multiprocessing自带的Queue.

2020-11-16 23:05:33 85

原创 11、协程和io教程02 -- IO多路复中select+回调+事件循环获取

01、非阻塞IO完成http请求--通过设置: client.setblocking(False) # 设置不阻塞连接过程,直接设置会报错 -- BlockingIOError: [WinError 10035] 无法立即完成一个非阻止性套接字操作。--在send recv函数上做错误处理OSError BlockingIOError,并不停循环。示例代码如下: --这种方式属于IO非阻塞实现http请求# 非阻塞IO带给我们的好处:通过非阻塞IO实现import ti

2020-11-16 17:09:15 306

原创 01、unittest模块使用 -- 官方网站学习心得

01、官网网址https://docs.python.org/zh-cn/3/library/unittest.html#basic-example02、入门

2020-11-13 11:47:27 148

原创 beego_01、beego项目搭建之cms系统搭建 -- 环境搭建

01、安装beego--安装git,并配置环境变量 --http://git-scm.com/downloads // 下载git--使用命令直接安装即可:

2020-11-13 11:46:54 280

原创 11、协程和io教程01 -- 并发 并行 同步 异步 阻塞 非阻塞 以及 IO多路复用概念和讲解

01、协程预先铺垫--协程这一章比线程更加复杂,需要和socket那两章混合起来学习学习02、并发 并行--并发:一个时间段内【不是一个时间点】,运行多个程序。但是每一时刻cpu中只能有一个程序在执行,那么这些执行的程序就是处于并发状态的。--并行:同一时刻,多个代码同时运行在多个cpu上,代码处于并行状态03、同步 异步--同步:当出现IO操作时,必须等待IO操作返回时才继续执行的操作称为同步。不涉及到IO操作时不需要考虑是否同步--异步:不需要等待IO操作执行完毕返回结

2020-11-13 00:51:47 296

原创 10、进程间通信

01、多线程中queue队列通信方式直接用于多进程报错 -- 不能使用 from queue import Queueimport timefrom multiprocessing import Processfrom queue import Queue""" 这个是为了说明:多线程中的queue通信方式直接使用到多进程中会导致错误 ############## 报错如下 ############## TypeError: cannot pickle '_thre

2020-11-12 01:19:39 241

原创 04、项目准备 -- jinja2模板配置

01、配置文件 -- 模板配置,必须包含原始模板 和 jinja 模板,且jinja模板在前面否则不生效--创建templates文件夹,这里我习惯于创建在根目录。这种创建方式需要我们使用: --'DIRS': [os.path.join(os.path.dirname(BASE_DIR), 'templates')] 退一层的方式添加 --必须放在原始位置的前面--不修改原有引擎配置,新增引擎jinja2, 即在settings.py中--并且一定要把jinja2 引擎放在前

2020-11-11 22:06:12 461

原创 03、项目准备 -- 工程的创建和配置

01、代码托管 -- 一般在码云上,这里先创建仓库02、代码托管 -- 创建项目之后本初始化一个代码仓库,相关操作也记录在案--git init--git clone https://gitee.com/limingweishuo/meiduo_django_jinjia.git 即可--注:一般人用上面的git下载不了,这个是私人的git没法下载必须提供密码03、代码托管 -- 这里下载之后打开项目,使用pycharm打开,VCS中会读入git便于后续我们添加04、忽略:i

2020-11-09 15:50:00 163

最简单的遗传算法代码

就是简单的一个遗传算法案例,对于小白还是可以看看,反正我也是

2018-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除