自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 面向对象(三)、静态方法、类方法

面对对象三大特征: 封装、继承、多态私有权限:在 属性 或 方法 前面加上两个下划线 __类的 私有属性 和 私有方法 ,不能通过对象访问,只能在类的内部 通过self访问类的 私有属性 和 私有方法 ,不会被子类继承,class MasterWorker(object): def __init__(self): self.mifang="古典秘方" self.__money=5201314 def get_money(self): print(self.__money)

2020-05-31 20:39:36 13270

原创 面对对象(二)

继承:单继承 、多继承1.单继承子类只继承一个父类,在继承时,小括号( )中为 父类class MasterWorker(object): def __init__(self): self.mifang="古典秘方" def make(self): print("按照<%s>制作了煎饼果子"%self.mifang)class Apprentice(MasterWorker): passt=Apprentice( )t.make( )2.多继承:同时继承多个父类

2020-05-31 20:17:16 13195

原创 面对对象(一)

类和对象的关系:类是对象的 模型对象是类的 实体类的构成: 类(class)类的名称:类名类的属性:一组数据类的方法:行为格式:类名 用大驼峰 无特殊要求,类名里面都用object(最顶级父类)class 类名(object):创建对象:可根据已定义的类,创建一个或多个对象格式: 对象名=类名( )class Hero(object): def move(self): print("快速移动") def attac

2020-05-31 20:03:21 13556 1

原创 TCP/UDP

Tcp / ip : 应用层、传输层、网络层、网络接口层查看本机ip:windons + r (进入交互换环境)ipconfigping 本机ip 查看本机网络有无问题端口:知名端口(固定端口):0—1023动态端口:程序可以设置的端口 1024—65535查看端口使用情况:netstat -anoTCP的三次握手简单理解深入理解加粗样式第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编

2020-05-31 19:35:14 13272

原创 Python中的 正则匹配

正则匹配的基本格式import re ret=re.match("正则表达式","要匹配的字符串") ret.group( ) 提取数据匹配单个字符:. 匹配任意一个字符(除了\n)[ ] 匹配[ ] 中的 任意一个字符\d 匹配数字 即 0-9\D 匹配非数字\s 匹配空白,即空格\S 匹配

2020-05-31 19:09:26 16538

原创 上下文管理(with)

with是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和资源分配释放相关代码统统去掉,简化try….except….finlally的处理流程。with通过enter方法初始化,然后在exit中做善后以及处理异常。所以使用with处理的对象必须有enter()和exit()这两个方法。其中enter()方法在语句体(with语句包裹起来的代码块)执行之前进入运行,exit()方法在语句体执行完毕退出后运行。 with 语句适用于对资源进行访问的场合,确保不管使用过

2020-05-31 18:54:55 13345

原创 Python文件的相关操作

打开文件: open(文件名,访问模式)常见的访问模式:write w 写入文件 文件已存在则覆盖,文件不存在,创建新文件read r 只读append a 打开一个文件用于追加基本格式:#打开文件f=open("我爱你.txt","w")f.close( ) 关闭文件文件的写入数据: # encoding="utf8" 兼容中文f.open("我爱你,txt",

2020-05-31 18:48:02 13124

原创 Python中常用的高阶函数

python中常用的高阶函数:map( )、reduce( )、filter( )、sorted( )map(function,Iterable)返回值 返回的对象,放到一个新的迭代器中def func(a,b): return a*b ret=map(func,[1,2,3,4,5],[1,2,3,4,5,6]) 以最少的Iterable 为准print(list(ret)) 输出结果: [1,4,9,16,25] reduce(fanct

2020-05-31 18:29:30 13309

原创 Python的 深拷贝、浅拷贝

== 和 is 的区别:== 比较对象内容是否相等,内存地址可以不一样,内容一样就可以is 比较对象是不是完全相同,内存地址是否一样深拷贝copy.deepcopy( )和浅拷贝 copy.copy( )之间的区别是什么?对象的赋值就是简单的引用,a = [1,2,3], b=a, 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是a的别名,是引用,我们可以使用b is a 去判断,返回True,表名他们地址相同内容也相同,也可以使用id()函数来查看.看两个列表地址是否相同.深拷贝就是

2020-05-31 17:22:50 13118

原创 Python中是如何管理内存的

Python有一个私有堆空间来保存所有的对象和数据结构。作为开发者,我们无法访问它,是解释器在管理它。但是有了核心API后,我们可以访问一些工具。Python内存管理器控制内存分配。另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。一、垃圾回收:python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值。对Python语言来讲,对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为

2020-05-31 16:59:05 13657

原创 Python中的 生成器、迭代器

迭代的概念上一次输出的结果为下一次输入的初始值,重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始值什么是迭代访问集合元素的一种方式可通过 for 循环遍历的对象 叫可迭代对象数字类型 不可迭代判断对象是否可迭代: isinstance( ) 判断是否为 Iterable(可迭代对象)from collections.abc import Iterable#print(isinstance(要判断的对象,数据类型))print(isinstance([1,2,

2020-05-31 16:42:11 13579

原创 Python中的 装饰器

在阐述什么是装饰器前,我们先来说一下什么是闭包闭包:在一个外函数中 定义了一个内函数内函数运用了 外函数的临时变量外函数的返回值 是内函数的引用 def outer( ): a=100 def inner( ): b=a+100 print(b) return inner outer( )( ) 装饰器:以@开头,装饰器是在函数调

2020-05-31 16:01:19 15703 1

原创 Python3的原生协程(Async/Await)和Tornado异步非阻塞

我们知道在程序在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞,而协程作为一种用户态的轻量级线程,可以帮我们解决这个问题。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存,在调度回来的时候,恢复先前保存的寄存器上下文和栈。因此协程能保留上一次调用时的状态,即所有局部状态的一个特定组合说人话:说白了就是,当协程遇到io操作而阻塞时,立即切换到别的任务,如果操作完成则进行回调返回执行结果,提高了效率,同时这样也可以充分利用 CPU 和其他资源,这就是异步协程的优势,并且协程本

2020-05-31 15:32:34 13846

原创 Python中的 协程

协程的定义协程:协程,又称微线程,纤程,英文名Coroutine。协程由于由程序主动控制切换,没有线程切换的开销,所以执行效率极高。对于IO密集型任务非常适用,如果是cpu密集型,推荐多进程+协程的方式。线程的切换会保存到CPU的栈里,协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态协程最主要的作用是在单线程

2020-05-31 15:25:48 13121

原创 Python中的 线程

1. 线程定义线程是操作系统调度的最小单位它被包含在进程之中,是进程中的实际运作单位进程本身是无法自己执行的,要操作cpu,必须创建一个线程,线程是一系列指令的集合线程定义拓展线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务无论你启多少个线程,你有多少个cpu, Python在执行的时候会淡定的在同一时刻只允许一个线程运行进程本身是无法自己执行的,要操作c

2020-05-31 15:05:02 13451

原创 Python中的 进程

1. 进程定义进程是资源分配最小单位当一个可执行程序被系统执行(分配内存等资源)就变成了一个进程进程定义拓展程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,这种执行的程序就称之为进程程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。进

2020-05-31 14:36:18 13160

原创 nginx vue 部署

server { listen 9000; server_name 1.1.1.3; #access_log logs/access_example.log main; root /home/work/project/frontopwf/dist; location / { try_files $uri $uri/ @router; } location @rou

2020-05-29 14:42:40 13007

原创 vue 使用 vue-amap 生成高德地图

首先说一下,什么是vue-amap,vue-amap 是 基于 Vue 2.x 与高德的地图组件,数据状态与地图状态单向绑定,开发者无需关心地图的具体操作vue-amap 官网 https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install按照其官方文档里面的安装教程,进行 安装 vue-amapnpm install vue-amap --save然后,在main.js中 引入 vue-amapimport Vue from '

2020-05-28 15:56:46 14600

原创 Python生成 桌面文件,并添加内容,(应用于数据的下载等等)

python生成txt文件,并添加内容代码如下#导入os模块import os#创建一个txt文件def text_create(name, msg): #自动获取桌面路径 desktop_path = os.path.join(os.path.expanduser('~'),"Desktop/") full_path = desktop_path + name + '.txt' # 也可以创建一个.doc的word文档 file = open(full_path

2020-05-28 14:39:06 16569

原创 Vue+Echarts实现一个简单的折线图

现在要实现,Vue+Echarts实现一个折线图,打开vue的项目:1:在项目里面安装echartsnpm install echarts --save2:在需要用图表的地方引入import echarts from 'echarts'3:打开my.vue继续写代码,代码如下:<template> <!--为echarts准备一个具备大小的容器dom--> <div id="main" style="width: 600px;height: 4

2020-05-28 14:18:43 18475 2

原创 使用高德地图 地址一经纬度 之间相互转化的实例代码 python

方法也是非常的简单,首先去高德开发平台,先申请高德API,设定一个Web服务的Key,然后将你自己的secret key填到下面的key对应的地方,就ok啦~进入 高德开放平台(https://lbs.amap.com/) ,没有注册先进行注册哦,登录完成之后,点击右上方的控制台,然后点击应用管理,进入我的应用,没有应用的话,创建一个应用,如图添加完应用了之后,生成属于自己的key,如图,我这里选择的服务平台是 web服务上面的步骤完成之后,我们就生成了一个key,如图所示再根据以下的代码,

2020-05-27 15:56:38 13830

原创 sql 如何查询当天、7天前、30天前的数据

一、查询当天的记录:select * from `order` where TO_DAYS(create_time) = TO_DAYS(NOW())注意: 这里的create_time是数据库中存储时间的字段名,会根据这个时间去和今天的时间对比获取数据。这里的 order表名 加上 `` (反引号 :就是键盘数字1左边的那个键(英文状态下))是因为 在mysql 中 order是一个关键字二、查询7天前的数据select * from `order` where DATE_SUB(CURDA

2020-05-26 18:46:14 26399 1

原创 python 时间格式转换和加减

1.导入包import datetime2.获取当前的时间curr_time = datetime.datetime.now()  # 2019-07-06 14:55:56.873893 <class 'datetime.datetime'>curr_time.year  # 2019 <class 'int'>curr_time.month  # 7 <class 'int'>curr_time.day  # 6 <class 'int'>

2020-05-24 16:24:20 18426

原创 关于mysql建表的 创建时间 和修改时间的字段处理

DateTimeField和DateField和TimeField存储的内容分别对应着datetime(),date(),time()三个对象。对于auto_now=False和auto_now_add=False,两者默认值都为False。auto_now=Ture,字段保存时会自动保存当前时间,但要注意每次对其实例执行save()的时候都会将当前时间保存,也就是 修改时间auto_now_add=True,字段在实例第一次保存的时候会保存当前时间,之后修改不会影响到这个字段,也就是 创建时间例子

2020-05-24 16:12:30 13990

原创 Django的RBAC权限管理

Django的RBAC权限管理动态菜单基于角色分配(RBAC) Role Based Access Control最基本基于角色分配表:角色表 User用户表 Role用户分配角色 User2Role许可表 Permission操作表(增删改查) Action 权限表 Permission2Action角色分配权限 Permis

2020-05-24 16:04:47 13139

原创 redis哨兵模式

sentinel哨兵模式介绍Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。sentinel可以让r

2020-05-24 16:00:00 13187

原创 redis事务、redis 优化

PipeliningRedis提供许多批量操作的命令,如MSET/MGET/HMSET/HMGET等等,这些命令存在的意义是减少维护网络连接和传输数据所消耗的资源和时间。例如连续使用5次SET命令设置5个不同的key,比起使用一次MSET命令设置5个不同的key,效果是一样的,但前者会消耗更多的RTT(Round Trip Time)时长,永远应优先使用后者。然而,如果客户端要连续执行的多次操作无法通过Redis命令组合在一起,例如:SET a “abc”INCR bHSET c name “h

2020-05-24 15:47:21 13290

原创 redis 穿透、雪崩、击穿

redis穿透什么是redis穿透?查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。发生场景:对于系统A,假设一秒 5000 个请求,结果其中 4000 个请求是黑客发出的恶意攻击。黑客发出的那 4000个攻击,缓存中查不到,每次你去数据库里查,也查不到。 举个栗子。数据库 i

2020-05-24 15:24:19 12928

原创 redis 内存管理与数据淘汰机制

在redis中,redis允许用户更改设置最大内存maxmemory,在每次写入或更新等操作时候,redis会检查使用的内存,当内存达到最大值得时候,就会进行数据淘汰策略,从而换取内存出来redis数据淘汰策略有6种:volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰volatile-random:从已设置过期时

2020-05-24 14:51:32 13073

原创 redis持久化的方式

1、前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。

2020-05-24 14:42:55 12884

原创 redis简单的使用

redis使用str类型    添加/修改:设置键值[O(1)]:set key value   set name pp设置键值及过期时间:  setex key seconds value  setex name 300 pp设置多个键值[O(1)]:    mset key1 value1 key2 value2  mset class1 python class2 java追加值:    append key value    append class1 pythonNB (class1

2020-05-24 14:38:56 12914

原创 如何配置 elementui

npm 安装 Element推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。npm i element-ui -S引入 Element你可以引入整个 Element,或是根据需要仅引入部分组件。我们先介绍如何引入完整的 Element。完整引入在 main.js 中写入以下内容://main.jsimport Vue from 'vue';import App from './App.vue';//引入elementuiimport ElementUI

2020-05-23 11:39:32 13089 1

原创 vue中设置全屏背景

在Vue项目开发中,有时候我们要向页面中添加一些背景图片,可是当我们在样式中添加了背景图片,编译打包后,配置到服务器上时,由于路径解析的问题,图片并不能够正确的显示出来,列如下面的CSS样式就会出现报错:background:url("../../assets/image/laosiji.jpg");在node中有一种解决这个问题的方式,如下:(1)在template中我们先这样写上:<div :style="bgImg">(2)我们需要在data中定义:<template

2020-05-22 17:21:51 16270 1

原创 前端使用 heyui 配置

我们需要有 Vue.js 环境,要提前安装好支持环境: 现代浏览器和 IE9 及以上。兼容: HeyUI支持 Vue.js 2.x版本安装 步骤:1、安装heyuinpm install heyui --save-dev2、安装lessnpm install less --save-dev3、安装less-loadernpm install less-loader@4.1.0 --save切记 less-loader 要指定版本注:Less 是一门 CSS 预处理语言,它扩展了

2020-05-22 09:22:29 13337

原创 drf框架和axios封装

djangorestframework框架,简称drf方便快捷的 进行 Web API 的开发也就是说 方便 我们进行 RESTful 风格接口开发一个接口对应着 get、post、put、delete、下载 模块pip install djangorestframework视图开发 使用APIViewfrom rest_framework.views import APIViewfrom rest_framework.response import Response#添加设备cla

2020-05-21 12:30:48 13087

原创 简易推荐算法

推荐算法:​ 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。发展背景:​ 推荐算法的研究起源于20世纪90年代,由美国明尼苏达大学 GroupLens研究小组最先开始研究,他们想要制作一个名为 Movielens的电影推荐系统,从而实现对用户进行电影的个性化推荐。首先研究小组让用户对自己看过的电影进行评分,然后小组对用户评价的结果进行分析,并预测出用户对并未看过的电影的兴趣度,从而向他们推荐从未看过并可能感

2020-05-19 19:12:12 14449

原创 redis主从配置

scentos7安装redis,以及redis的主从配置redis的安装下载redis安装包wget http://download.redis.io/releases/redis-4.0.6.tar.gz解压压缩包tar -zxvf redis-4.0.6.tar.gzyum安装gcc依赖yum install gcc跳转到redis解压目录下cd redis-4.0.6编译安装make MALLOC=libc  #将/usr/local/redis-4.0.6/src目录

2020-05-19 16:12:17 13144

原创 mysql主从配置

linux系统mysql主从配置一、原理mysql主从配置的流程大体如图:1)master会将变动记录到二进制日志里面;2)master有一个I/O线程将二进制日志发送到slave;slave有一个I/O线程把master发送的二进制写入到relay日志里面;4)slave有一个SQL线程,按照relay日志处理slave的数据;二、操作步骤按照原理,我们开启mysql主从复制,我们大体需要做以下操作:1)开启master的二进制日志2)开启slave的二进制日志3)将slave

2020-05-19 15:46:19 12856

原创 django生产环境部署

django生产环境部署生产环境中的数据流参考文档:wsgi详解:https://blog.csdn.net/li_101357/article/details/52748323wsgi协议介绍(萌新版):https://blog.csdn.net/j163you/article/details/80919360廖雪峰web编程讲解:https://www.liaoxuefeng.com/wiki/897692888725344/923057027806560WSGI是什么?WSGI是一种

2020-05-18 18:05:35 14164

原创 支付宝沙箱支付

新建支付宝一个沙箱支付应用 https://openhome.alipay.com/platform/appDaily.htm?tab=info (沙箱环境地址)点击上面的网址,我们会进入支付宝沙箱页面,首次使用支付宝沙箱,要进行一些配置,如图:打开下载好的 支付宝开放平台开发助手 (上图下载的软件)将生成好的,公钥配置到 支付宝沙箱上即可官方文档:https://openhome.alipay.com/developmentDocument.htm 查看电脑网站支付相关说明最新版支付

2020-05-15 14:52:40 13312

空空如也

空空如也

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

TA关注的人

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